REVUE DES STANDARDS AMSTRAD
.,.■.„■'
JEU :
30 SNAKE
EDUCATIF : f }|
RELIEF
UTILITAIRE :
MONITEUR
, ASSEMBLEUR
I DESASSEMBLEUR
M1365 23 20,00F
I
tM&m
MENSUEL N° 23 - JUIN 1987
AMSTRAD
VERS UN MONOPOLE
.EDITO
Depuis 7 ans que nous sommes dans la presse, nous en avo
rachat en passant par les pressions nombreuses ei diverses
tes, pas roui à fait seuls. Notre avocat du Barreau de Rennes n'y est pas étanger.
Nous avons toujours entendu être maîtres de nos jugements. Plutôt disparaître que se eo
se battre.
Aujourd'hui, la société Amstrad international nous ordonne de changer l'un de nos titres. En l'occurrence AMS
TAR, le journal des jeunes dont le succès est évident aujourd'hui. On y parle de confusion possible que l'on peut
l'aire croire qu'Amstrad participe à la Rédaction et la cautionne (les lecteurs qui suivent CPC depuis ses débuts
savent à quoi s'en tenir sur ce sujet !).
On y parle aussi de contusion préjudiciable à la marque. Les lecteurs apprécieront l'argumentation.
Notre confrère Amstrad magazine, qui pourtant a négocié fort cher le titre, risque lui aussi, un jour, de se voir
confronter à des problèmes. Un exemple ? Nous avons toujours loué sa maîtrise dans l'organisation des salons
Amstrad expo. II semble que désormais Amstrad France veuille reprendre à son compte cette exposition. "Merci
Amstrad magazine. Vous nous avez préparé le terrain,, à nous maintenant", telle est peut-être la pensée des diri-
geants d'Amstrad, Dans tous les cas, le lecteur remarquera l'élégance du geste et gageons que les exposants seront
très largement sélectionnés, si cet état d'esprit n'est pas modifié.
Aussi avons-nous pu apprendre que la société Amstrad souhaitait meure en place SA propre revue Amstrad-PC.
A l'évidence, il faut faire le vide avant !
L'expérience passée montre que les importateurs ou fabricants qui tentèrent de lancer leur propre revue furent
peu crédibles, tant sur le contenu que sur la publicité ! Les parutions furent souvent marginales. En agissant aini
il n'y a plus de contradicteurs, Seuls certains produits "bien pensants" peuvent être mis en av.
Ceci représente un immense danger à deux niveaux ;
— Celui de l'indépendance de la presse et de l'information déjà parfois sujettes à caution par les lecteurs.
— Amstrad international est anglais et l'on peut craindre que les stratèges d'Outre-Manche préparent dès
lenanl les ouvertures du Marché commun en 1992.
vlS-
Pendanl ce temps, les Français se battent sur des sujet
I e Marche de l'Europe, c'est demain !
1 spéro® avec la France.
Florence MlïLLET
SjIvùp FAUREZ
Fond al eu rs
;ertes importants, mais qui ne s
Actualité:
Listing anl
Bulletin d'abonnement ....... \ ... .
Cao al) ............ .\..^.., _...,.
Toui sur sound
Agendor ........... , .... ". .■ ,
Les fractales en Logo
Le salon de Lyon. . . ^ ................ .
Les interfaces DK'Tronics ........
Un port d'entrée-sortie économique
3t> Snake ......
Oclode , . ...',. .
RSX Char : . .'..-.'
Bug, où es-tu ? ......... .'....--
Branchez le turbo
fnoto sprite
Relief
Banc d'essai des logiciels
Trucs ci astuces ...
tiation à CP/i\l .
Moniteur-assembleu
Restauration
. 6
8
8
10
18
20
.23
.28
30
34
36
.48
50
,52
.57
ast une Dublicatlon du
F^^B| CPC
(&k M groupe de presse FAUREZ-
l**'_iM MELLFT
Distribué en Suisse par SEMAPHORE
Tel 022 54.11,95
I
et en Belgique par COMPUTER
MARKET
Directeur de publication
Photocomposition
170, rue Antoine Dansaert
Sylvio FAUHEZ
SORACOM
1000 BRUXELLES - tel 513.53.58
Rédacteurs en chef
Nathalie CHAPPE - Béatrice JEGU
Marcel LE JEUNE - Denis BONOMO
Photogravure couleur
Régie publicitaire Chef de publicité
iédflctlort
BRETAGNE PHOTOGRAVURE
IZARD CREATION Patrick SIONNEAU
Catherine VIARD
IMPRESSION :
15, rue St-Melaine Assistante
Olivier SAOLETTI
Presse de Bretagne
35000 RENNES Fabienne JAVELAU
Secrétaire de rédaction
Secrétariat-Rédaction
Tél. 99.38.95.33
Carence MELLET
SORACOM Editions
directeur de fabrication
La Haie de Pan
Edmond COUOERT
35170 BRUZ
ZïJ'b'itZ'i'w iïS a .i*Z* £vw!hu*^
Maquette
RCS Rennes B319 816 302
Jean-Luc AULNETTE - Patricia
Tel 99 52.98.11 +
•>»<*<>*>
MANGIN
TélexSORMHZ741.042F
Abonnements - Vente au
Serveur 3615 + MHZ
ce numéro b*S^^^ U trîr U gr3 P ndo l 'Ban, I 'du
numéro
CCP Rennes 794.17V
droil d'auteur Da oa (ail. ils ne pouvant «Ira imités.
Catherine FAUREZ
Distribution NMPP
ccnlrefalto, ooplôs par quoique procédé que » soit.
Tel 99.52.98.11
Dépôt légal à parution
Société SORACOM si de l'auteur concerné. Les opi-
Service rassort - Réseau
CodeAPE5)20
nion* enpnrnôae n'enyaoonl que la responsabilité
Gérard PELLAN
Tél. vert 05 48.20.98
no peuvent être réalisés que dans un bul privé du
nspeclion des ventes :
PL-mliinletT AMSTRAD GB ei J'AMSTUM)
saBnUfiqua mai» non commercial. Cas réserves
sappltouent également au< boleiob publié* dan»
Christian CHOUARD
FRANCE.-.,
ACTUALITES
SECURITE INFORMATIQUE
Les entreprises utilisatrices de
systèmes informatisés doivent
parfois faire face à de lourdes per-
tes dues à un sinistre informatique d'or-
dre matériel ou immatériel.
Le Salon Infosec devant se dérouler les
2, 3 et 4 juin prochains réunira 150
exposants qui contribuent, chacun dans
leur domaine, à la sécurité des systèmes
informatiques. En plus des stands, les
personnes intéressées pourront suivre
des sessions de formation présentant les
méthodes et moyens concrets à mettre
en œuvre pour assurer la sécurité d'un
ensemble informatique.
Lieu de ce salon INFOSEC 67 : Palais des
Congrès, Porte -Mai Ilot, 75017 PARIS.
ENSEIGNEMENT ASSISTE
PAR ORDINATEUR
AMSTRAD RECOMPENSE
Cette année, Amstrad a été
sélectionnée pour recevoir le tro-
phée "Tertiel" et ce pour la per-
formance de son micro-ordinateur...
Il faut savoir que le trophée "Tertiel" a
pour objectif de mettre en valeur des pro
duits qui sont d'incontestables réussites
et Amstrad l'a prouvé en 1 986 en deve-
nant le numéro un de l'informatique
domestique.
TROPHEE DE
L'INFORMATION 1987
Du 7 au 10 mai derniers, s'est
déroulé la Coupe de l'Informati-
que organisée par l'AFIN (Asso-
ciation Française des Informaticiens!.
Pour cette compétition, 85 bateaux
étaient présents parmi lesquels l'équi-
page d'Omnilogie Citizen qui effectuait
là sa première opération de sponsoring...
Opération fort réussie puisqu'il a non
seulement remporté le trophée de l'infor-
matique 1 987, mais également la Coupe
du Yacht Club de France pour sa victoire
dans le parcours olympique,
SOFTSTRIP COMMUNIQUE
Softstrip ou "La Révolution infor-
matique sur papier" nous indique
leur changement de locaux. Voici
leur nouvelle adresse :
SOFTSTRIP FRANCE
7, rue de la Gare
92130 Issy-les-Moulineaux
Tél. : (1) 40.95.16.66.
Quel est l'avenir de l'informatique
à l'école ? Des entreprises en
plein essor ont misé sur ce sec-
teur de l'informatique que représente
l'EAO (Enseignement Assisté par Ordina-
teur! et se sont unies pour réaliser un fas-
cicule proposant une sélection de logi-
ciels, de livres, de revues et de matériel
informatique pour l'EAO.
IDEES s'adresse tout particulièrement
aux écoles, associations et parents d'élè-
ves. Si vous voulez vous le procurer, il
suffit de le demander à l'adresse suivante
en |0ignant 2 timbres à 2,20 F pour les
frais d'envoi :
Editions SORACOM
La Haie de Pan
35170 BRUZ
L'INFORMATIQUE POUR F
Micro & Soft Informatique offre
des Ateliers "Open Access" gra-
tuitement aux entrepreneurs qui
veulent avoir une gestion performante en
attendant d'investir en équipement infor-
matique. Ils peuvent ainsi utiliser des
logiciels professionnels de comptabilité,
de gestion de stock et facturation, des
bases de données, des tableurs...
Pour tout contact :
MSI (tél. 56.94.50.94).
NOUVELLES ASSOCIATIONS
Club informatique
Siège social : Foyer rural de Puyricard —
Centre de formation X2000 - Ancienne
école - 13540 Puyricard.
Club informatique
Siège social : Cité informatique — 9, rue
Florent - 69008 Lyon.
Club informatique
Siège social : avenue George-Sand -
36140 Aigurande.
Club micro-informatique de Rivarennes
Siège social ; mairie - Rivarennes -
37190 Azay-le-Rideau.
Club informatique d'Andernay
Siège social : mairie - Andemay
55800 Revigny-sur-Omain.
AVIS AUX EDITEURS
La société ESAT Software com-
munique aux auteurs et éditeurs
de programmes qu'elle tient à leur
disposition une série de protections
physiques ou logiques sur Amstrad,
CPC...
Pour plus de renseignements, téléphonez
au ; 56.96.35.23.
PROFESSIONS LIBERALES
ET INFORMATIQUE
Vous exercez une profession libé-
rale et vous voudriez adapter un
programme de gestion sur votre
GESTION FINANCIERE est un pro-
gramme associé à la gestion de cabinet
dentaire qui est adaptable à toutes les
professions libérales ; de plus, il répond
aux conditions spécifiées par les associa-
tions de gestion agréées de contrôle des
déclarations fiscales.
Pour plus de renseignements, contactez
Paul Parage-Jonjon au 94.29-59.06.
Association informatique
de Clermont-Dessous
Siège social : Fourtic — mairie —
Clermont-Dessous - 47130 Port-
Sainte-Mane.
Club informatique varennois
Siège social .mairie - 031 50 Varennes-
sur-Allier.
Club informatique de l'océan Indien
Siège social : Télèmac - 14, rue d'Al-
sace - 97400 Saint-Denis.
Club informatique de Thézy-Glimont
Siègesocial : mairie - Thézy-Glimont -
801 10 Moreull.
Microclub informatique nîmois
Siègesocial: chez M. Bendinelli lEric) -
16, rue de Vérone - 30000 Nîmes.
ACTUALITES
Comme chaque i
a liste des
sera
i la liste oes nouveaux jeux annon-
pour la gamme Amstrad. Certains
int cane pin* ifo nmmpni^lim^ Inr^.
que vous lirez ces I
présenterons un ba
prochain
d'Air
de sortir le premier numéro d'une com-
pilation de son catalogue. Elle comprend
trois programmes a l'ambiance estivale
qui sont : Macadam Bumper, Pacific et
us vous en Mission 2. Les numéros 2 et 3 sont déjà
li dans un prévus et sortiront respectivement en
u de CPC. septembre et novembre prochains.
CPC : cassette, 1 50 F ; disquette, 230 F.
fl faut croire que l'arrivée de la fin
du premier semestre favorise
l'apparition des compilations
puisque FIL nous en propose une à son
tour avec Pack Amstrad qui regroupe les
4 logiciels suivants : Révolution, The
Great Escape, Cauldron II et Sorcery
CPC : cassette, 1 49 F ; disquette, 1 95 F.
COKTEL VISION
De l'aventure et de l'action en
nie de Jolly Jumper et de
son fidèle Lucky Luke (ou l'in-
verse, peut-être ?), NITROGLYCERINE
est composé de cinq épisodes d'un style
très varié où vous pourrez alternative-
ment avoir votre part d'aventure, votre
part d'action, sans oublier votre part de
réflexion...
Avec ROBINSON CRUSOE, plongez dans
ce que l'on peut appeler un roman animé.
Ce style vous permet de vivre l'aventure
en prenant les décisions nécessaires à
votre survie, en vous immisçant dans les
paysages, en relisant des passages de
testes... Tout ceci vous permet de pren-
dre connaissance par le jeu de romans
classiques.
ACTIVISION
Avec ENDURORACER, affrontez
tés du monde
ainsi des pistes goudi
éprouvantes du désert
possible de jouer à 2
CPC : cassette, 95 F;
.. A noter qu'il est
avec ce logiciel,
disquette, 145 F.
ENGLISH SOFTWARE
Avec LEVIATHAN, vous avez
entre les mains un jeu classique
dans l'espace où il est aussi
important d'avoir un vaisseau de manie-
ment très souple que de réussir à survi-
vre. Vous devez naviguer dans trois
zones différentes et affronter dix sortes
d'ennemis... Alors, bon courage I
ERE INFORMATIQUE
L'été arrive bientôt avec les
vacances à la clé... Ere informa-
tique y a pensé et a donc décidé
CRL
Avec ACADEMY, vous vivez tout
simplement la suite de Tauceté.
Dans ce logiciel. Gai Corp décide
de fonder une école de formation pour
pilotes d'élite. SI vous voulez devenir un
as de l'Académie, vous devrez mener à
bien pas moins de 20 missions en com-
battant à bord d'un Skimmer militaire
j9Hm
INFOGRAMES
ner tout l'été aux longues balades
en montagne car. dès septembre,
vous essaierez de planter votre fanion,
nuit, sur le sommet de votre choix et ce
grâce au logiciel BIVOUAC. Ainsi, vous
TOUT
SUR SOUND
Bernard POISOT
LE GENERATEUR DE BRUIT ET
QUELQUES VALEURS INTERESSANTES
LE GENERATEUR DE BRUIT
Il existe dans SOUND une dernière
option, la période de bruit, prenant les
valeurs a 31 . Cela génère un bruit pas
très agréable qui se superpose au son
défini précédemment. Ce bruit périr
défini précédemment —
' 'e créer des effets spê-
Le programme qui suit donne un exem-
ple de ces effets. Il imite une locomotive
passant devant vous à "toute vapeur"
avec un effet de relief stéréo afin de
it de la gauche vers
, bien sûr, perçu
essentiellement d_
ciaux, en procédant ainsi : le si
est haché par une fréquence qui se cal-
cule en divisant 62500 par la période
BASIC de bruit. Si la période de bruit est
à 0, le bruit est arrêté. On peut fixer la
période sonore à pour n'entendre que
Il n'y a qu'un générateur de bruit qui sera
le même pour les trois canaux et sa
période sera définie par le dernier ordre
pris en compte
qu a
illatiu
■ En V
î de la gauche et se rappro
che : lignes 30-50.
L'oreille droite commence aussi à enten
dre le bruit à partir d'un certain rappro-
chement, mais moins fort : lignes
70-100.
Quand le train est devant nous, les deux
oreilles reçoivent la même intensité
sonore, le volume est maxi : fin de la
boucle en 100, début de la boucle en
= stereo (1 oco-mot i ve )
20 d=20..: f=4«*5:DEF FNi>i ï u* ( i = f*3
30 FOR i=0 TO 1*
43 SOUND 1 t*f f^tit wFNbr'fiit
5Ô NEXT
oô IF SOUK. 4 THEN &#
70 FOR i- 1 1 TO 15
S0 SOUND lt f »di i> t /FMbP'Jit
99 SOUND 4> f t d, 3*< i — 13 > > > iFIMoruit
106 NEXT
110 FOR 1=15 TO 11 STEP-1
120- SOUND 4\f *àt itt fFNbfuit
130 SOUND 1» f > dr3*(i-10) > > »FNbruit
140 NEXT
150 FOR 1=10 TO STEP-1
160 SOUND 4t f »d»i > t *FN bruit
170 NEXT»
1 10, Il s'éloigne ensuite â droite. A une
certaine distance, l'oreille gauche ne per-
çoit plus rien : boucle 110-140.
Le son continue à décroître à droite,
jusqu'au silence : lignes 150-170.
Les paramètres qui déterminent le bruit
ont été regroupés à la ligne 20 : d pour
la durée, f pour la fréquence de base et
FNbruit pour le bruit superposé. Essayez
diverses modifications, mais ne jouez
que sur un paramètre à la fois. Vous
entendrez l'effet des diverses valeurs.
Conservez ce programme. Il vous servira
en sous-programme pour utiliser des
effets stéréo dans vos œuvres. Suppri-
mez la ligne 20 et renumérotez-le en
1 0000 par exemple. Vous déterminerez
dans votre programme la valeur des
paramètres en fonction des effets
QUELQUES VALEURS
INTERESSANTES
L'envoi du code 7,PRINT CHR$t7l pro-
voque un bip qui vide les canaux sono-
res, arrêtant tout son en cours. Cela peut
se faire aussi en provoquant une erreur,
par exemple en utilisant la touche DEL
en début de ligne, ce qui générera le
même bip.
La période BASIC 1 42 génère le LA des
musiciens, sa fréquence est 440 Hz.
La période sonore à permet d'obtenir
le bruit seul.
Si Ton fixe à la durée de la note, c'est
l'enveloppe de volume qui déterminera
la durée du son. Si cette durée a une
valeur négative, l'enveloppe de volume
sera répétée le nombre de fois spécifié.
Bien que le volume ne puisse prendre que
les valeurs à 1 5, la variation imposée
par ËNV va de -128 à 1 27, Ceci aura l'ef-
fet suivant : si le son dépasse 15, il
revient à 0, de mêm
à une valeur négativ
tir de 0.
il doit descendre
ENT répétera I
eloppe négatif pour
eloppe iusqu'à la fin
L'explication des possibilités du son en
BASIC est terminée
Essayez diverses combinaisons que
votre CP peut engendrer, d'abord simple
ment sans ENV ni ENT et complétez petit
à petit.
Vous entendrez de tout : bruits et sons,
BgréablfflS et affreux. Il ne tient plus qu'à
vous et â votre patience d'éveiller le
Jean Michel Jarre qui sommeille en vous
ETAT DE CANAL : certains bits ne
pourront avoir simultanément la
valeur 1 . Ce sont, d'une part, les bits
3, 4 et 5 et, d'autre paît, les bits 6
et 7 La valeur mini aéra 1 . la valeur
ma* sera 167
PERIODE SONORE a 4095
DUREE : -32768 a 32767
VOLUME . à 15
NUMERO D'ENV :0a 15.
NUMERO D'ENT ■ 15 à 15 (0
exclu).
PERIODE DE BRUIT a 31.
NOMBRE DE PAS D'ENT 'Oà 239.
AMPLITUDE DU PAS D'ENT ■ 1 28
a 1 2 7.
DUREE DU PAS D'ENT : à 255.
NOMBRE DE PAS D'ENV : â 1 27,
AMPLITUDE DU PAS D'ENV : 1 28
à' 127
DUREE DU PAS D'ENV : â 255
ENV et ENT peuvent contenir 5 sec
LOGICIEL PCW
AGENDOR
DE QUARTZ SYSTEM
Noël LAGNEU
AGENDOR est la dernière nouveauté de QUARTZ SYSTEM, auteur et
éditeur par ailleurs de programmes utilitaires dont nous avons sou-
vent parlé dans ces lignes [les applications graphiques CRISTAL, les
gestions de fichiers SAPHIR, la tenue de comptes RUBIS...).
auveau programme pour PCW est
3 veine tout à fait inédite : il est
ble de fonctionner en arrière-plan,
tains utilitaires pour PC tels
que SIDEKICK de BORLAND. Expliquons-
nous : le programme est charge dans une
zone mémoire qui est ensuite protégée
contre l'écriture par une astuce software.
Le lancement est obtenu par une com-
binaison des touches du clavier. Pour
SIDEKICK par exemple, il faut appuyer
sur les deux touches SHIFT latérales.
Pour AGENDOR, la combinaison de lan-
cement choisie est celle obtenue par
appui sur ALT, SHIFT et > simultané
ment. En sortant de ce programme, le
système d'exploitation reprend la main
On peut alors naturellement relancer l'ap-
plication par la même manœuvre ou lan-
cer n'importe quel autre programme. Ce
qui est tout à fait impressionnant est
que, dans le contexte obtenu, il est
encore possible de lancer l'utilitaire en
arrière-plan, par la même combinaison de
touches, et également de revenir à l'au-
tre programme lancé sous CP'M sans
modifier son bon fonctionnement ulté-
rieur, ce qui est tout à fait extraordi-
naire !... Dommage que LOCOSCRIPT
soit exclu du lot. du fait de ses caracté-
ristiques non CP/M...
Le second grand attrait de AGENDOR est
son sujet : il regroupe cinq utilitaires très
puissants (à l'instar de SIDEKICK par
exemple!. Son caractère arriére-plan,
c'est-à-dire son accès à travers n'importe
quel autre programme, n'en prend que
plus d'intérêt encore. On obtient ainsi
une calculatrice, un bloc-note, un cal
drier perpétuel, une gestion de fichie
un agenda (qui a donné son nom au r.
gramme complet ?
elquei
LANCEMENT
DU PROGRAMME
Comme nous l'avons indiqué précédem-
ment, le programme est chargé en
mémoire (en tapant simplement AGEN
DOR sous CP/Ml, puis lancé par appui
simultané sur ALT, SHIFT et > . Au bout
de quelques secondes, l'écran se brouille
uniformément et on a le choix entre deux
possibilités : OUVRIR, c'est-à-dire entrer
dans AGENDOR, ou FIN {quitter le pro
gramme). Une fois notre utilitaire ouvert,
un menu principal propose le choix entre
les 5 applications (FICHIER, CALCULA
TRICE, CALENDRIER, BLOC-NOTE,
AGENDA) l'option voir que nous décri-
rons ensuite et la fermeture des Fichiers
pour quitter AGENDOR
FICHIER
Cette option étant choisie, la figure 1
nous montre comment se présente
l'écran de notre PCW : la fenêtre attri-
buée à la gestion de fichier apparaît en
clair, le reste de l'écran restant brouillé
(hormis la petite zone détaillant les
Chaque fiche se présente sous forme de
7 rubriques (société, nom, adresse 1 ,
adresse 2, ville, code postal, téléphone)
de 20 caractères (soit 500 fiches sur une
face de disquette du lecteur A:, ou 2000
fiches sur une disquette double densité).
Toutes les fonctions classiques d'une
gestion de fichiers sont assurées de
manière parfaite. L'utilisation des tou-
ches spéciales du PCW est très judi
cieuse et l'ergonomie générale du pro-
gramme, ainsi que sa facilité d'utilisation,
sont tout à fait remarquables
Visualisation
Les fiches défilent à l'écran par action sur
les touches i- et - encadrant la barre
d'espacement. La touche FIND permet
d'entrer un nom de société qui nous con-
duira directement à la fiche cherchée ou
qui nous permettra d'en créer une nou-
velle. La touche CUT permet d'effacer la
fiche courante et on peut l'imprimer
directement par appui sur RELAY.
Recherche et tri
Les touches PASTE et COPY permettent
de choisir certaines fi ches. la première en
spécifiant pour les rubriques choisies des
valeurs mini et maxi. la seconde en spé-
lues. Cette façon de procéder couvre la
totalité des problèmes courants de tri et
de recherche. La sortie des résultats peut
se faire de différentes façons :
— A l'écran, fiche par fiche.
— Sur des étiquettes, en paramétrant
— Sous forme de listes papier.
— Sur un fichier disque sous format
ASCII, pour liaison avec tout autre pro-
qiciel classique.
CALCULATRICE
Le choix de cette option fait apparaître
clairement la calculette dans sa fenêtre.
Son emploi est ries plus simples : appuis
sur les chiffres voulus au clavier et chaî-
nage possible des quatre opérations de
base + , -, x et /. Cet outil est très utile,
en dépit de son apparente futilité.
CALENDRIER
Il s'agit d'un calendrier perpétuel de
1 900 à 1 999. Les touches 4 et - incré-
mentent et décrémentent le mois ou Tan-
née concernée. La fenêtre réservée indi-
que alors la correspondance jour de la
semaine-date journalière.
BLOC-NOTE
Il s'agit d'un carnet dont chaque page
peut contenir 10 lignes de 30 caractè-
res (583 pages en A:, 2334 pages en B:
double intensité). On peut feuilleter les
pages Itouches t- et -I et les imprimer
(figure 21. Une caractéristique très inté-
ressante de ce bloc-note est de pouvoir
chercher un groupe de lettres ou un mot-
clé â travers toutes les pages du carnet
tsi rapidement un fait
j établir des corrélations entre
AGENDA
La*
e tl mu
e AGENDA e
e que celle d'uni
sensi-
blement (e
du bloc-note. On sélectionne d'abord le
jour, le mois et l'année à l'aide des tou-
ches du curseur et des touches + et -.
Dans une page donnée, l'utilisateur entre
ses différents rendez-vous. On peut alors
imprimer la journée (figure 3], la suppri-
mer ou changer de jour La recherche par
mot-clé permet de rt
donnée à partir du simple
^nlrer pai
n d'une per-
mple !...
VOIR
Cette dernière option est illustrée
figure 4. Toutes les fenêtres sont alors
clairement visibles et l'écran n'est plus
du tout hachuré.
On peut beaucoup vanter ce logiciel, à
— Son caractère novateur et inédit le
rend très attrayant.
— Les utilitaires proposés sont très
complets et très bien réalisés.
— L'ergonomie du programme est tout
à fait remarquable (utilisation des tou-
ches particulières, simplicité des com-
mandes, clarté de la notice).
Nous sommes convaincus qu'il fera un
tabac sur les PCW et puissent les con-
cepteurs et les éditeurs s'aligner sur les
qualités de ce produit I
I Régler cou-
Kii!ïlAt:i-.HVlL
mm '-. 7Ï-7S ut jw
Bit,,,
=l|=|Wiiïi «i;
stsirfH - 71
Basai jtJi «in ikI« ■fcy^
jmH» i: u j3 w ii ii
la a n. m ti i% *
™™ ii.ii,i, ,„, ni,.
jmmii Ji
' ' aSr si « i »7
S St rtchtrert i Irai ., i ■.!!;■.-
i! ' ■■■''■ ' ■■< -" ■
p. SIC j
* =Sulvu}L 1
ÎLï!' 1
SfeisfiinM"™'"'
8ft.s:«aii!«,„
AGENDOR nous montre
tous ses visages !...
DECOUVERTE
LES FRACTALES
EN LOGO
De plus en plus de |eux (d'arcades ou
d'aventures) utilisent un générateur frac-
tal pour créer un décor sans cesse diffé-
rent : le joueur a l'impression d'évoluer
dans un paysage infini. Dans le cas de
ces jeux, il s'agit de fractales en trois
dimensions Irelief). Nous vous proposons
de découvrir les fractales à deux dimen-
sions qui sont bien sûr beaucoup plus
faciles à programmer
Nous avons utilisé Logo car il est idéal
pour réaliser ce genre d'application. Si
vous ne connaissez pas encore ce lan-
gage, voilà peut-être l'occasion de vous
y mettre.
COMMENT CREER
UNE COURBE FRACTALE ?
Pour construire une fractale, il faut tout
d'abord choisir un "générateur" ou
"motif de base" (quelque chose de très
simple comme, par exemple, le dessin de
la figure 11.
Ensuite, il faut t
ouver un moyen pour
urs fois cette forme
(réduite en dimen
ion) tout en respectant
la géométrie du
notif de départ.
! Ce r
■ ? Alo
reprenons notre exemple : nous allons
remplacer chacun des segments de
droite par une copie (à l'échelle 1 /3) du
motif de base. Ce qui va donner le des-
sin de la figure 2.
Et i
de i
jite
encore chaque nouveau segment par le
motif de base réduit neuf fois jusqu'à
obtenir le dessin de la figure 3.
Théoriquement, il faudrait poursuivre ce
travail jusqu'à l'infini. On obtiendrait alors
quelque chose comme le dessin n° 4.
Mais, comme le temps c'est de l'argent,
nous allons nous arrêter bien avant l'in-
fini. De toutes façons, il faut rester dans
les limites imposées par la définition de
l'écran.
PROGRAMMATION EN LOGO
Le,
; très s
■nple
allons d'abord (pour fixer les idées) créer
une procédure qui dessine uniquement
le motif de base. Nous allons même lui
donner un paramètre, ce qui permettra
de dessiner des motifs de base de n'im-
porte quelle dimension (voir listing 1 et
figure 6).
Figure 1
J~L
Figure 2
Figure 3
J*%.
r "
Figure 4
as s,
» « »
Listing 1
to motif :taille
fd :taille
It 90
fd :taille
rt 90
fd :taille
rt 90
fd :taille
It 90
Si vous voulez tester cette procédure,
vous pouvez taper par exemple
motif 20
Pour transformer ce dessin en courbe
fraciale, il suffit d'une légère modifica-
tion de la procédure : remplacer tous les
traits (fd : taille! par un motif plus petit.
Vous savez, bien sûr, modifier une pro-
cédure ; il faut taper : ed [motif 1. Vous
obtiendrez le listing 2.
Listing 2
lo motif :taille
if ital
e < 3 |fd
taille stop)
motif
taille / 3
It 90
motif
taille i 3
rt 90
motif
taille / 3
rt 90
motif
taille / 3
It 90
motif
taille / 3
and
Comme vous l'avez sans doute remar-
qué, nous avons ajouté une ligne d'ar-
rêt lif :taiile < 3...). Ceci, bien sûr, pour
éviter à LOGO d'explorer les profondeurs
de l'infini. Vous pouvez modifier à
volonté cette ligne d'arrêt pour changer
la définition de la courbe :
if taille < 10 [fd :taille stop]
(peu de définition)
if taille < 1 [fd :taille stopl
(définition maximale)
Vous i
,* itaille ^
~ "
a
4
^ :taille fc
Listing 3
setpos |120 01
seth 90
pd
motif 81
Et, enfin, nous modifions départ pour
appeler non plus motif mais étape
(listing 61.
Listing 6
PETITE VARIANTE
Le programme précédent dessine la
courbe fractale tout de suite avec la défi-
nition que vous avez demandée. Il peut
être intéressant de faire dessiner toutes
les étapes, en partant de la définition la
moins bonne jusqu'à la définition la meil
leure. Nous ajoutons un paramètre à
notre procédure motif (listing 4). Para-
mètre qui sera utilisé dans le calcul de la
condition d'arrêt ;
Listing 4
.,»« „oir ce que cela don
„,„,$ tapez motif 30
La courbe n'est pas centrée sur l'écran. éta|
Ce n'est pas bien grave : il suffit, pour ave
arranger cela, de créer une procédure peti
la position de départ de la courbe
(listing 3).
Maintenant, tapez simplement départ
pour avoir une courbe fractale correcte-
ment positionnée sur l'écran.
Reconnaissez que, pour obtenir un des-
sin aussi complexe en deux procédures
et moins de vingt lignes de programme,
il faut vraiment s'appeler LOGO.
to motif :ta
Ile :arret
if :tai
e <
arrêt [fd Maille stopl
motif
failli*
/ 3
It 90
motif
laille
/ 3
rt 90
motif
: taille
/ 3
rt 90
motif
■Taille
/ 3
It 90
motif
;taille / 3
end
Ensuite, nous créons une procédure
étape (listing 51 étape qui appellera motif
des valeurs d':arrët de plus en plus
Listing S
to départ
es pu
setpos 1-120 0|
seth 90
pd
étape 81
end
Pendant que nous y sommes, voici
encore une petite amélioration : plutôt
que de faire superposer les courbes,
nous allons effacer le tracé de l'étape
précédente avant de redessiner. Mais
pour que le résultat soit impressionnant,
il faut effacer la courbe au fur et à
mesure de l'avancement du nouveau
tracé. La procédure motif prend alors sa
forme finale telle que le montre le
listing 7.
Listing 7
to motif :tai!1e :
irret
if :ta.He < :arre: l*d :taille stopl
pe fd taiilo bk
tarie pd
motif taille ■ 3
It 90
pe fd :taifle bd
raille pd
motif taille 3
rt 90
pe fd :taille b*
•aille pd
motif rtaiite ' 3
rt 90
pe fd :taiHe bk
tdille pd
motif ta.lle ■ 3
It 90
pe fd rtallle ok
taille pd
Motif rtaille ■' 3
end
D'AUTRES COURBES...
iant que vous savez comment
et programmer une courbe trac-
iez pas vous en priver. Les
) vous montrent quelques
Listing 8
>v<
Listing 9
"Si
£•-
>7
branche 64
*
frï
to branche :long
if :long < 3 Istopl
fd ;long
rt 45
branche :long / 2
K 90
branche :long / 2
rt 45
bk :long
I est intéressant de faire varier l'angle
antre les branches et de désymétriser
'arbre lune branche avec :long / 2 et
'autre :long / 3 par exemple).
Tapez exodus 60 et vous allez voir
que vous aile? voir...
M y a des ouvrages entiers OOFisacrÊS à
courbes fractales. Autrement dit, il y ■
a beaucoup d'autres sortes. Mais il e
amusant de créer les sienne
repeat 4 |fd :taille exodus :taille
/ 3 rt 901
LEXIQUE DES PRIMITIVES UTILISEES
Signale la fin d'une procédure.
fd x (forward)
Trace un segment de longueur x à partir du point courant, dans la dire
ht (hide turtle)
Ne fait plus afficher la pointe de flèche, ce qui augmente I;
-ante de x degrés,
It x (left)
Change la directn
pu (pen up)
Lève le crayon,
tracé.
rt x (right)
Change la direct
st (show turtle)
Affiche la pointe de flèche.
Annonce la définition d'une procédure
. sur la droite.
RAPPEL DE GEOMETRIE LOGO
En LOGO, tous les tracés se font à partir du point c
courante. Ces deux paramètres sont représentés sut
flèche.
^
v
Direction
Cour ante
Point courant
Il est possible de changer la direction courante Irt. It, sethl et le point courant (fd,
bk setposl en produisant un tracé (pdl ou sans laisser de trace (pul.
Certains "simples d'esprit" ont assimilé cette représentation mathématique aux
évolutions d'une tortue. Animal qui se serait réincarné dans la pointe de flèche
précédemment citée.
Sovons indulgent envers ces personnes et laissons les martyri;
être un sympathique quadrupède carapaçonné.
u 'elles croient
BIBLIOGRAPHIE
LOGOMONDE
(Hatier)
Livre + cassette Thomson, Apple. Une
trentaine d'activités LOGO abondam-
ment commentées (A. Pré, G Godimier,
M Bonnetonl.
LOGOMONDE 2
(Hatier)
Livre + cassette Thomson. Intelligence
artificielle et LOGO (A. Pré, G. Godimierl.
LOGOMONDE AMSTRAD
(en cours d'édition)
Livre + disquette Amstrad Des exem-
ples de ce qu'il est possible de faire avec
DR LOGO sur AMSTRAD (A. Pré,
G. Godimierl.
GERESCO
{Hatier)
Logiciel de gestion PC ou compatible.
Gestion des élèves, analyse de résultats,
éditions de bulletins (A. Pré).
LE MONSTRE DE L'INFO A L'ECOLE
Revue Diffusion : Ademir. L'informatique
dans l'enseignement (G. Godimier).
REPORTAGE
LES 3 JOURS AMSTRAD,
PC, MINITEL DE LYON
Les 15, 16 et 17 mai, s'est déroulé à
Lyon une exposition concernant les
matériels AMSTRAD, le minitel et les
compatibles IBM. Heureux abonnés et
lecteurs de CPC, AMSTAR ou PCompa-
tibles, une réduction vous était offerte
sur le prix d'entrée. Ceci a dû sans doute
vous inciter à faire le déplacement puis-
que le nombre d'entrées a augmenté de
500 par rapport à la 1 B, ° édition du salon.
C'est donc 2500 personnes qui ont
arpenté les allées où éditeurs et reven-
deurs présentaient leurs produits.
Succès certain pour Sémaphore avec le
scanner de Dart et Graphpad II, une
tablette graphique pour PCW munie d'un
logiciel permettant toutes sortes de
manipulation d'objets définis en
mémoire. Toujours sur PCW, la série des
"8000" s'est enrichie d'un MASTER-
FILE. Il s'agit d'une gestion de fichiers
sophistiquée qui utilise au
Olivier SAOLETTI
capacités du disque virtuel.
Amstrad ayant sorti un compatible (vous
ne le saviez pas ?}, Tasword et Tasprint,
deux logiciels connus, se sont adaptés
aux nouvelles machines, le tout pour un
rapport qualité/prix des plus satisfai-
sants.
Autre pôle d'attraction, le stand Wings
avec le logiciel AMX Pagemaker tournant
sur 464 plus une extension mémoire de
64 Ko. La P.A.O. (Publication assistée
par ordinateur) étant actuellement en
vogue, les CPC ne pouvaient rester en
arrière... Muni de la souris AMX, (elle
n'est pas obligatoire, mais elle offre,
outre la facilité d'utilisation, un "look'
sensationnel!, Pagemaker permet, à
coup de menus déroulants et d'icônes,
de fabriquer un petit journal. Il est même
possible d'intégrer des images digitali-
sées et de les disposer à l'intérieur de vos
textes.
Le digitaliseur ARA de Jagot et Léon fai-
sait une démonstration de ses possibili-
tés en se connectant sur un téléviseur.
Même débauche d'images avec ie logi-
ciel Pastel qui permet la composition de
pages VIDEOTEX avec quelques options
supplémentaires telles que la transforma-
tion des images digitalisées par ARA et
la possibilité de fabriquer fenêtres et
masques. Le dernier maillon de la chaîne
est un serveur 4 voies possédant une
extension mémoire de 256 Ko (celle-ci
permet un stockage et un traitement des
images très rapide).
Du côté purement logiciel, on pouvait
trouver Orthogus, un programme éduca-
tif sous forme d'enquête policière (CFI),
ainsi qu'un utilitaire mathématique trai-
tant des fondions numériques. Logys,
outre Maths-collège et Maths-école déjà
testés dans CPC, présentait plusieurs
programmes à orientation profession-
nelle : Financius, gestion d'association,
analyse financière.
Sur PC, Micro Star's proposait GT + , un
logiciel de gestion intégrée comprenant
gestion de stock, comptabilité, gestion
commerciale, courrier électronique, avec
des possibilités d'extension comme une
connexion caisse enregistreuse ou une
comptabilité analytique. Autre pro-
gramme présenté par Micro Star's, Dis-
trib, un gestionnaire pour magasin de
prêt-à-porter. Le club CI. A. (Club Infor-
matique Amstrad) tenait un stand
bruyant puisqu'envahi d'exclamations,
de sonorités stéréophoniques et
amstradiennes.
Autre club présent par l'intermédiaire de
quelques membres : Ams'cercle dont un
des animateurs, Michel Archambault est
venu nous rendre visite sur le stand CPC.
Cette exposition a été pour nous l'occa-
sion de répondre à vos questions et pour
vous la possibilité de vous procurer les
anciens numéros (pas tous malheureu-
sement I)
C'était également le moment de se pro-
curer des produits à tarif réduit tels que
disquettes 3 et 5 pouces (Majuscule et
France-disquette) ou quelques unités
centrales (on pouvait même trouver des
ATARI 520 ST sur lesquels tournaient de
fabuleuses "démos"). Si vos moyens
financiers étaient plus importants, MEI
pouvait combler vos désirs avec toute
une gamme de fournitures pour l'infor-
matique d'entreprise.
Comme vous le constatez, il y en avait
pour tous les goûts, le tout dans une
ambiance de grand club informatique.
-•■•sggffS
pO 5 " s. ori*
£..*•"•
BANC D'ESSAI
Les interfaces
LE SYNTHETISEUR VOCAL
Faire parler l'ordinateur est toujours amu-
sant : les compte-â-rebours sont plus
réalistes, lors du tir d'un missile ; les desi-
derata d'un robot, exprimés en clair, peu-
vent apporter une touche d'humour à
votre dernier programme. Seule l'imagi-
nation limitera les possibles utilisations
d'un synthétiseur vocal...
Construit autour du célèbre SPO 256,
l'un des circuits intégrés "vocaux" les
plus anciens, le synthé DK'Tronics a pour
seul inconvénient son accent britannique
très prononcé. Avec lui, il sera difficile
de parler en bon français... Essayez de
lui faire prononcer la lettre "U" par
exemple 1 Ceci étant dit, tout le reste est
fort bien pensé.
L'utilisateur apprendra avec plaisir que ce
synthétiseur est doté d'un amplificateur
stéréo. Cet ampli viendra se substituer
avantageusement à celui qui équipe
l'AMSTRAD. Désormais, toutes les illus-
trations sonores (vocales ou musicales)
seront reproduites sur les 2 haut-parleurs
livrés avec l'interface. Deux réglages
sont accessibles sur l'amplificateur : le
volume sonore et la balance droite-
gauche (ou gauche-droite si vous êtes un
lecteur susceptible et engagé politique-
ment). Le second réglage s'effectuera à
l'aide d'un petit tournevis : il a déjà été
pré-ajusté en usine.
Le synthétiseur DK'Tronics est commer-
cialisé en plusieurs versions, fonction de
la machine qui doit l'accueillir et selon
que le logiciel est livré sur support
magnétique ou en ROM.
C'est cette dernière version (logiciel en
ROM) que nous avons testée. Sentant
grandir votre impatience, je ne vous ferai
pas attendre davantage.
Le CPC reconnaît la présence de la ROM
du synthé (je ne vais pas écrire le mot
en entier à chaque fois...) en affichant
"SPEECH ROM VER. 1.1". L'instruction
ISPEAK permet d'initialiser la ROM et
lance un test interne donnant tout à coup
la parole à l'AMSTRAD. La liste des com-
mandes disponibles est affichée : il ne
reste plus qu'è les essayer I
Disposant d'un espace limité pour ce
banc-d'essai (on ne va tout de même pas
détailler la notice II, nous allons voir qu'il
existe, en fait, deux grands modes de
fonctionnement, les autres en dérivant
plus ou moins.
A chaque phonème est associé un code
(il y a ainsi 59 sons et 5 durées de pause)
décimal qui, envoyé è l'adresse du
synthé, produit un son. Ceci étant dit, on
peut donc programmer "son par son",
par l'intermédiaire de listes de DATA. Les
octets lus sont envoyés dans un buffer
DKTRONICS
Amstrad construit des ordinateurs ;
DKTronics les complète avantageu-
sement par des interfaces comblant
certaines lacunes de la machine. Présen-
tées en boîtier plastique de belle facture
(mais non, pas le prix, la réalisation 1), les
extensions peuvent être accouplées, non
Sas pour faire des petits, mais pour ouvrir
l'utilisateur des horizons nouveaux.
Curieusement, DKTronics édite un manuel
d'utilisation commun à toutes les interfa-
ces. L'acheteur d'un synthétiseur vocal se
laissera-t-il tenter, au vu des possibilités
décrites dans le manuel, par un crayon
optique ou un RAM-Disque ?
Les périphériques DKTronics que nous
avons testés pour vous sont tous disponi-
bles chez ORDIVIDUEL. En vous recom-
mandant de "CPC", le meilleur accueil
vous sera réservé.
qui pourra en contenir jusqu'à 250. Ces
sons peuvent être envoyés en mode
"direct" ou en mode "programme",
grâce à un astucieux contrôle des inter-
ruptions, le synthé ne ralentira pas trop
votre programme. Grâce aux sons élé-
mentaires, on pourra former des mots,
mais aussi produire des effets sonores
assez recherchés.
L'autre mode de fonctionnement fait
appel à un convertisseur Texte/Parole.
L'idée est excellente car on peut ainsi
introduire du texte en anglais, sous forme
de chaînes de caractères, et le faire pro-
noncer au St T (j'en ai marre d'écrire
synthé...) au moyen d'un simple PRINT.
Le logiciel est conçu pour reconnaître
certaines règles d'exception de la langue
anglaise, ce qui simplifie bien notre
tâche.
J'ai bien dit "langue anglaise" car, pour
le français, il faudra ruser. Certains mots
anglais devront être orthographiés diffé-
remment (par exemple, "final" est pro-
noncé presque "à la française" et devra
être écrit "fianol" pour ressembler à de
l'anglais). Suffit de savoir, quoi I La lec-
ture de la notice nous apprend que le buf-
fer de texte peut contenir jusqu'à 100
caractères, ce qui permet de former des
phrases suffisamment longues. Avec sa
contenance de 250 phonèmes, le buffer
de parole fera parler la machine pendant
45 secondes... mais une commande
appropriée permet de loi couper le
sifflet I
Profitant d'une autre caractéristique de
ce St T (j'en profite I), l'AMSTRAD
pourra dicter les listings ! En effet, tout
ce qui apparaît à l'écran sera énoncé par
la machine. Hélas, ceci restera parfois
assez confus, la voix robotisée s'accom-
modant mal de certaines i
sons.
Le synthétiseur {quel courage I) DK'Tro-
nics est également programmable à partir
de l'assembleur. La notice donne quel-
ques explications à ce sujet. Cette notice
se termine par une table des phonèmes,
listés par numéro d'ordre avec, pour cha-
cun d'eux, un exemple de mots extraits
du vocabulaire anglais.
Malgré quelques petits défauts (notam-
ment une voix un peu trop métallique lors
de l'utilisation du convertisseur texte/
parole), le saint thé (normal, il est bri-
tish...) DKTronics est séduisant par ses
possibilités. Le constructeur offre à l'uti-
lisateur, en plus du synthétiseur (c'est la
dernière fois que je l'écris), un ampli sté-
réo et ses 2 HP... pour le même prix I
BANC D'ESSAI
LE RAM-DISQUE
Un disque de 254 Koctets utilisables,
voilà ce qui se cache sous le nom de
"Silicon Disc"... RAM-Disque en "fran-
çais" (je vois les habits verts de nos aca-
démiciens en frémir I).
A quoi peut bien servir un RAM-Disque
A charger et sauvegarder des program
mes, fichiers, blocs de données, beau
coup plus rapidement. Et ça marche sur
n'importe quel CPC ? Oui mon bon Mon-
sieur... à condition que ledit CPC soil
déjà équipé d'au moins un lecteur de dis-
quettes. Le RAM-Disque se comporte
alors comme une disquette normale aux
différences suivantes près ;
— Les fichiers sont lus et écrits beau-
coup plus rapidement.
— Ils sont définitivement perdus en cas
de coupure de courant.
— On les retrouvera même après un
RESET complet.
Quel intérêt peut-on avoir à utiliser un
RAM-Disque ? Le gain de vitesse lors de
la manipulation de gros fichiers...
Le RAM-Disque DK'Tranics est utilisable
sous AMSDOS (en BASIC) ou sous CP/M
(2 .2 ou CP/M + ). L'interface pour 464 et
664 se présente en 2 boîtiers : l'un con-
tient le système d'exploitation, l'autre là
RAM. L'un dans l'autre... ils se connec-
tent (aïe, pourvu que M. Pasqua ne fasse
pas interdire CPC I) et sont unis pour le
meilleur (et pour ie pire, si vous les utili-
sez mal} et pour le grand bien de l'ordi-
nateur hôte.
Selon que votre CPC est déjà doté d'une
ou 2 unités de disquettes, le RAM-
Disque deviendra le disque B ou C.
Après une initialisation relativement sim-
ple, destinée à indiquer au système la
présence d'un disque supplémentaire,
l'utilisateur transférera ses fichiers de la
disquette vers le RAM-Disque. Sous
L'EXTENSION
RAM 2S6 K
Encore une extension de mémoire, mais
qu'il ne faut pas confondre avec le Ram-
disk. Celle-ci a pour vocation de gonfler
votre CPC 464, 664 ou 61 28 en lui attri-
buant 256 Ko supplémentaires.
Cette mémoire est divisée en 16 ban-
ques de 1 6 Ko qui seront accessibles par
commutation au moyen d'un jeu de com-
mandes RSX. Mais n'allez pas imaginer,
comme le font bien souvent les débu-
tants, que vous allez pouvoir écrire des
programmes en BASIC de près de
200 K. Ce n'est pas si simple 1 Par con-
tre, elle vous rendra les plus grands ser-
vices pour sauvegarder tout ce qui est
gourmand en mémoire, comme par
exemple vos pages d'écran, vos tableaux
ou vos chaînes de caractères, allégeant
d'autant vos programmes en BASIC.
L'interface est livrée avec une disquette
contenant le logiciel d'implantation des
RSX. Notez que vous avez le choix de
l'adresse d'implantation et que, par
défaut, le programme s'installera à
l'adresse la plus élevée disponible. Dès
que cette opération est effectuée, l'écran
vous indique le nombre de banques dis-
ponibles. Voyons maintenant le rôle des
différentes fonctions complémentaires,
mais soulignons au préalable que la
notice d'empioi fort détaillée vous facili-
tera la première prise en main.
ISAVES,n et ILOADS,n permettent de
stocker en mémoire et de rappeler des
pages écrans, n étant le numéro de bloc.
Les anglophiles auront interprété le S de
la commande à Screen.
Syntaxe analogue pour ISAVEW,F,n et
ILOADW,F,n (W comme window) qui
ont respectivement pour fonction de sau-
CP/M, la procédure de configuration du
Setup est décrite dans le manuel de
DK'Tronics, ce qui ne laissera pas errer
inutilement l'utilisateur. Toujours sous
CP/M, il faudra utiliser PIP pour transfé-
rer les fichiers car COPYDISC et DIS-
COPY, plus gourmands en TPA, ne tour-
nent pas.
Les temps (sont durs...! comparés de
vegaruer «i uw rappeler c
caractérisées par leur numéro, n étant
toujours le numéro de bloc. Ces deux
commandes vous permettront de réali-
ser facilement des menus superposés à
la Mac-lntosh.
IHigh et ILow chargent deux images en
mémoire centrale, l'une à la place habi-
tuelle (high) et l'autre immédiatement au-
dessous llow), ce qui, grâce à la com-
mande associée ISwap, vous permettra,
par commutation de pages, de réaliser
des animations graphiques.
Quittons maintenant le domaine de
l'écran pour voir le stockage de données
qui s'effectue de manière analogue par
ISAVED (comme Data) et ILOADD. Les
données peuvent être des tableaux, des
variables ou des chaînes de caractères.
Heureusement que la notice est très
claire à ce sujet et l'expérimentation, à
l'aide des petits programmes de démons-
tration inclus, vous permettra très faci-
lement de tirer le meilleur parti de ces
deux commandes.
Il nous reste à citer les quatre dernières
commandes qui sont IASKRAM, IPEEK,
IPOKE et IBANK qui s'adressent au pro-
grammeur plus expérimenté qui pourra
également, s'il a bien assimilé la topogra-
phie de la mémoire de l'AMSTRAD,
écrire ses propres routines en BASIC ou
en assembleur pour s'affranchir des RSX
d'origine.
Signalons enfin que cette extension per-
met d'utiliser CP/M+ tel qu'il est livré
avec le 61 28 et que la commande IEMU-
LATE transformera votre 464 ou 664 en
véritable 6128|
chargement d'un fichier sont éloquents :
pour 30 K de BASIC, il faut 7 secondes
sur disquette et moins de 1,5 s avec le
RAM-Disque... Spectaculaire également,
le chargement d'un écran de 1 7 K à partir
du RAM-Disque...
Si vous êtes consommateur de gros
fichiers, pensez à ce RAM-Disque. Au
fait, il existe aussi en version 64 K B
LE CRAYON OPTIQUE
Le crayon optique OKTronics se con-
necte par l'intermédiaire d'un mini jack
à son boîtier d'interface qui présente,
vous vous en doutez, un air de famille
avec les autres périphériques de la
marque.
Ce boîtier contient, outre l'électronique
du stylo, une ROM dans laquelle est
implanté un logiciel de dessin exploitant
les possibilités de l'outil. La mise en
œuvre de l'ensemble est extrêmement
simple. Il suffit de taper ILIGHTPEN pour
voir apparaître le premier menu du logi-
ciel intégré dans la ROM qui aura détecté
la présence éventuelle d'un lecteur de
disquette et vous proposera de charger
ou de sauvegarder vos dessins sur le
support magnétique adéquat. "Next"
permet de passer au menu suivant et il
y en a cinq en cascade ainsi de suite. Le
second vous propose d'effacer l'écran et
de calibrer le crayon optique qui a besoin,
pour fonctionner correctement, d'un
niveau de lumière ni trop faible ni trop
élevé. Vous réglerez donc la brillance de
votre écran au niveau suffisant pour pou-
voir déplacer la petite cible aux quatre
coins de l'écran. De temps à autres,
cette petite cible a des tremblements
erratiques, mais la notice précise que
c'est sans importance car le dessin
pourra être corrigé à la loupe par la suite.
Les quatre flèches de direction vous per-
mettront de centrer exactement la cible
sur le stylo.
Une fois cette opération effectuée, vous
voilà prêt pour le dessin. Vous disposez
pour cela d'une palette de 10 couleurs
qui vous serviront pour les crayons (dis-
ponibles en 4 épaisseurs}, pour l 'aérogra-
phe, les textes qui peuvent être horizon-
taux ou verticaux et, enfin, pour la fonc-
tion de remplissage de formes, matéria-
lisée par un robinet. Comme tous les pro-
duits concurrents, le stylo DK'Tronics a
besoin de lumière pour fonctionner, d'où
une certaine difficulté pour choisir une
couleur sombre. Mais l'auteur du pro-
gramme y a remédié en autorisant la
sélection de couleur par la bordure jaune
qui entoure chaque teinte de la palette.
En dehors des cercles et des rectangles
accessibles par le menu, il est possible
de tracer des figures complexes au
moyen "d'élastiques" tendus entre des
punaises. Votre courbe complexe sera
ainsi constituée d'une succession de
lignes courtes et cette fonction se révèle
très pratique à l'usage. Notons aussi la
présence d'une fonction de copie,
d'agrandissement ou de réduction d'une
partie du dessin. La fonction loupe est
ici appelée "calepin". Au moyen d'une
fenêtre réglable, vous sélectionnez une
partie de l'image avant de la transférer
vers le calepin où elle apparaîtra en plein
écran et là vous pourrez la modifier au
pixel près.
Reste un dernier point : l'impression de
vos chef -d 'œuvres. Vous disposez pour
cela d'un petit programme livré sur une
cassette et qui vous offre le choix de
l'imprimante entre Epson et Amstrad.
Après notre test, nous regretterons sim-
plement que DK'Tronics n'ait pas installé
à l'extrémité de son stylo un petit bou-
ton poussoir manœuvrable du bout de
l'index, ce qui éviterait de manipuler la
touche Enter de la main gauche. Mis à
part ce petit regret, ce stylo optique s'est
révélé d'un usage fort agréable et la
gamme des outils mis à la disposition de
l'artiste permet facilement c
avec une grande précision!
BIDOUILLE
UN PORT D'ENTREES-
SORTIES ECONOMIQUE
Eddy DUTERTRE
Les trois versions de CPC disposent
d'origine d'un port d'entrées-sorties faci-
lement utilisable pour les bricoleurs. La
sortie imprimante centronic est consti-
tuée de huit lignes en sortie (DO à D6 et
STROBE)etd'uneenentrêe(BUSY).Ce
port est actif par le BASIC avec les ins-
tructions PRINTS8 ou LIST/f8. mais le
résultat obtenu est tributaire du logiciel
interne de l'ordinateur. Par contre, grâce
à deux instructions particulières du
BASIC (OUT et INP), il est possible de se
rendre maître de la configuration de ces
lignes.
L'important est de savoir que, pour les
sorties, l'adresse du port est &EFOO et
pour l'entrée &F532. Ainsi, pour mettre
toutes les lignes DO à D6 et STROBE à
un, il faudra faire :
OUT &EF00.&7F ou OUT &EF00.127
La ligne sept (STROBE) est inversée par
rapport aux autres car elle passe à un en
mettant le bit huit à zéro d'où &7F à la
place de &FF {01 111111= &7F
11111111 = &FF)
ligne... 76543210 76543210
Pour une ligne sur deux à un :
OUT &EF00,Bl2A ou OUT &EF0O,42
&2A 00101010 (notez le bit 7 à
zéro)
ligne....76543210
Inversement, pour lire la ligne en entrée
(BUSY), il faudra faire :
A = INP &F532:A = A AND 64
Si l'entrée est à un, A aura pour valeur
64 sinon A sera nul.
Comment exploiter ces sorties ?
Une première mise en garde. Il n'est pas
possible de commander directement,
avec ces sorties, des relais ou autres
systèmes tels que voyants. Un petit
montage buffet est nécessaire (voir
schéma). Pour l'entrée, il ne faudra pas
dépasser 5 volts. L'idéal est de disposer
d'un contact à la masse (interrupteur ou
contact de relais).
Schém a d'un buf fer .
2N2222 j
venant de la prise IMF.
PB a US ci; STKOBE
Entrée sur BtlSV. conseillée
Les liasses sont a relier
a la broche 14 ou 15 de la
prise IHP.
17 16 15 14 13 12 11 10 9 8 7
5 4 3 S 1
i 29 28 27 26 25 24 23 22 21 26 19
3-D1
4-D2
S-l>3
6-M
7-05
8-D6
9-D7
11-8USY
14-MftGSE
15-NftSSE
BROCHAGE DU CONMCTEUJt IHPRIHftHTE
BIDOUILLE
OCTODE
Zig et Puce
OCTODE est le nom donné au montage
proposé, il s'agit d'un mini clavier à con-
necter sur la prise joystick. Son origina-
lité réside dans le fait qu'il assure au cur-
seur de francs déplacements obliques.
Tout indiqué pour les utilitaires à option
joystick et technique menus-déroulants,
il demeure sociable en usage ludique.
Pour réaliser ce montage, les néophytes
liront attentivement le texte.
PRINCIPE DE FONCTIONNEMENT
Sur un joystick ordinaire, un mouvement
oblique s'obtient on pressant deux bou-
tons de déplacement. Par exemple, pour
atteindre le coin supérieur gauche de
l'écran, la base de la manette de jeu doit
presser en MEME TEMPS les contacts
HAUT et GAUCHE. Mais cela ne peut
pas fonctionner parfaitement dans tous
les cas de figure et alors le curseur dévie
e haut, s
Le dispositif de la figure 1 assure un
déplacement oblique UNIQUEMENT lors
d'une action SIMULTANEE sur les con-
tacts sollicités. Il s'agit d'une fonction
ET, matérialisée dans notre cas par deux
diodes et un poussoir (figure 4).
OCTODE apporte quatre directions (ou
sens plus exactement) obliques.
Il faudra donc huit diodes et quatre pous-
soirs à cet effet. Les deux feux sont pla-
cés dans la partie supérieure du montage
et l'un d'eux (F2), est couplé avec la tou-
che centrale (figure 7).
REALISATION
Outillage à rassembler ;
i plates,
; coupantes,
nces à dénuder,
ir à souder, soudure,
Composants à se procurer :
- 1 1 boutons-poussoirs,
- 8 diodes types 1N4148 (D1-D8),
- connecteur |ovstick femelle,
- câble 1 mètre. 9 conducteurs,
- circuit imprimé ICI).
Pour le Cl, les néophytes se procureront
une pochette KIT DE GRAVURE (mode
d'emploi inclus).
PREPARATION
Avant d'implanter les composants, il faut
les identifier, repérer leurs connexions,
les mettre en forme.
- Le Cl : tous les trous sont percés au
diamètre de un millimètre (figure 10).
- Le CABLE : comporte neuf fils con
ducteurs isolés à relier d'un côté au con-
necteur, de l'autre au Cl (figure 71. Les
fils seront dénudés (longueurs en mm),
étamés et repérés (figures 5 et 9).
- Pour ETAMER un fil, torsader ses
brins, chauffer cette extrémité et y dépo
ser un peu de soudure (figure 5).
- Le REPERAGE consiste à associer
une couleur à un chiffre pour chaque fil
du cable. Exemple : le fil rouge ira d'un
côté au 2 du connecteur (figure 8) et de
l'autre, bien sûr, au 2 du Cl (figure 1 0) .
Et ainsi de suite... Enfiler le capot du con
necteur (figure 7) sur le câble afin de ne
- Les DIODES : plier les pattes. La
bague indique la CATHODE (figure 6).
- Les POUSSOIRS : quatre pattes.
Rien à faire de particulier.
L'implantation des composants sur le Cl
se fera telle que le montre la vue de des-
sus (figure 7) et dans l'ordre suivant :
diodes tout d'abord, cathode bien orien-
tée, poussoirs ensuite et, pour finir, le
câble, lui-même relié au connecteur sui-
vant repérage (figure 8 à 10).
Soudure : éviter de trop chauffer les dio-
s qui sont relativement sensibles à la
aleur. Couper les pattes (ou queues)
après soudure (figure 6).
CONTROLE
Les diodes sont-elles correctement orien-
s fils reliés aux bons endroits, les
soudures toutes faites ? Visser le capot
sur son connecteur. Coller une plaquette
tcarton ou matière plastique)
cuit imprimé afin d'isoler les soudures.
Brancher la prise femelle sur le port joys-
tick de l'ordinateur. Tester OCTODE
avec FRUITYFRANCK ou 2 pour les
jeux, CHERRY PAINT ou AMSTRADIVA-
R1US pour les utilitaires.
s'attaquer à la ver
an remarque (figure 2) :
s communs 8/9
E ON/OFF de la touche centrale
T inverseur des feux 6/7
M touches bas profil disposées en cer-
ine membraneH
H
OH
HD
-*-®-
®
-®— »- D
GB
■
BD
INITIATION
Un programme nouveau ne fonctionne
jamais du premier coup. Il y aura toujours
au moins un "bug" lou "bogue") qui
provoquera un plantage ou un résultat
que l'on n'attendait pas du tout.
Il y s deux sortes de bugs : le franc et
net, du genre "Syntax error in 340" ; et
puis le farceur, le sournois, qui vous fait
croire que tout marche bien et qui, de
temps à autre, vous affiche un résultat
faux. Non seulement ce bug fantôme est
parfois difficile à remarquer, mais sa
localisation va demander beaucoup de
ruse et de méthode. Heureusement, il est
plus rare.
Mais on peut aussi diviser les auteurs de
bugs [nous] en deux catégories : ceux
qui programment et ceux qui recopient
■des listings publiés dans des revues ou
des livres. Et la, les causes d'erreurs sont
bien spécifiques. De ce fait, c'est la clas-
sification que nous allons suivre : nous
parlerons donc d'abord des erreurs de
recopies, puis des erreurs de conception
de programme et, enfin, d'un domaine
commun, la localisation d'un bug caché.
Il serait trop facile d'ouvrir notre parapluie
en disant : «Bien sur I Ils copient sans
essayer de comprendre !» ; car même un
bon programmeur a parfois toutes les
peines du monde à comprendre un listing
écrit par quelqu'un d'autre I Pourquoi ?
Parce qu'ils ont des façons de penser
complètement différentes. Alors le
"copieur" renonce à comprendre la pen-
sée «contre nature» lia sienne) de l'au-
teur du programme, et il se met à copier
«bêtement" en lui faisant confiance.
t hum
31 la frappe ; surtout si vous pOSséÔÈï
n CPC 464. Peut-être y lirez-vous qu'il
s s'adresse qu'au 6128 !
Les confusions de
Il est très facile de mal interpréter cer
tains caractères, surtout quand un défaut
d'encrage chez l'imprimeur vient compli-
quer les choses Je pense à tout ce qui
ressemble à une barre verticale ; cela
peut-être un I majuscule, un chiffre 1, un
L minuscule ou la barre obtenue par
SHIFT+-a commercial.
Nota : si vous nous envoyez un pro-
gramme en vue de publication, ne pro-
grammez qu'en majuscules [sauf pour
les REM et les textes entre guillemets),
et pensez à ne pas utiliser la variable I
ou des noms de variables commençant
ou se terminant par cette lettre. Sinon,
attendez-vous à recevoir beaucoup de
Autres cou fusions ckisMiques, le chiffre
et la lettre 0, 5 et S, le point et la vir-
gule, les deux-points et le point-virgule,
le G minuscule et le chiffre 9. Ajoutons
à cela quelques ctourderies dyslexiques
courantes après 23 heures 30, du genre
slash et anti-Elesh Iles touches sont voi-
sines...), < et >, M et W en
minuscules...
Autre cause d'erreurs fréquentes, les
espaces (ou blancs) en trop ou en
moins : lorsque l'on veut indiquer qu'une
variable chaîne RS est "vide" ou nulle,
on écrit RS = "", c'est-à-dire deux guil
lemets consécutifs. Si vous mettez un
espace entre eux deux, ça change tout !
R$ n'est plus vide, elle est de un carac-
tère. Pour indiquer que R$ ^un blanc, il
est plus prudent de programmer
RS = SPACESfl ). Autre cause heureuse-
ment plus rare certains programmeurs
(qu'il faudrait battre !l ont remarqué que
le blanc est parfois un caractère de sépa-
ration en BASIC ; alors, dans des lignes
de DATA, il mettront un espace en guise
de virgule ou dans un ordre PRINT pour
Michel ARCHAMBAULT
remplacer les points virgules. Ça marche.
mais si le recopieur oublie un de ces
blancs, c'est la catastrophe assurée
Les adaptations malheureuses
Pour rendre la recopie moins «bébête»,
H est humain d'apporter çà et là des peti-
tes modifications «sans importance»,
histoire de personnaliser un peu ce que
l'on tape. Très bien, mais de nombreux
pièges vous guettent.
Premier cas. les noms de variables Afin
de rendre le listing plus clair, l'auteur a
utilisé des noms de variables longs, par
exemple RAPPORT =A/B, et comme ce
nom revient souvent, vous décidez que
RAP est bien suffisant Oui, mais en
poursuivant la frappe le lendemain, voilà
que vous l'appelez RAPP... Autre cas
avec par exemple DIRECTION = 4, trop
long ! Vous tapez Dl - 4, Et voilà un futur
"Syntax error" ; parce que Dl est un mot
BASIC, peu usité certes, mais c'est un
"mot réservé" (voir la liste des "mots
réservés" dans votre manuel).
Une autre aventure î Les numéros de
lignes. Un programmeur qui tient à con-
server son standing fait des sauts de
numérotations a des multiples de 1 00 ou
de 1000, à chaque fois qu'il aborde une
nouvelle étape. Ça fait "rangé" et net,
surtout quand ces numéros de lignes
«tout en zéros» sont des REM expliquant
ce qui suit.
Oui, mais il y a le copieur qui se dit que
«AUTO c'est pas fait pour les chiens» et
aussi que «Les REM ça ne sert à rien,
donc je saute...» Mais il n'empêche qu'il
transcrira scrupuleusement.. IF N =
THEN GOTO 800. Des GOTO qui iront
se perdre dans les marécages...
Vous pouvez vous dispenser du texte de
REM de la ligne 2000, mais tapez au
moins 2000', sinon gare au "LINE DOES
NOT EXIST IN 340"
les impondérables
gramme qui «aurait dû prévoir» que l'on
va lancer son programme «à chaud» et
non pas après un CTRL +SHIFT + ESC.
En effet, il y a des choses mémorisées
qui ne s'effacent pas par RUN ou par
NEW ; c'est le cas de MODE, des cou-
leurs de l'écran, des SYMBOL et des KEY
DEF. Pour illustrer cela, voici deux gags
authentiques.
- Gag n° 1 : ce programme débute par
un GOSUB qui définit des caractères par
SYMBOL, donc précédés par un
SYMBOL AFTER. Premier essai, impec-
cable I Tout content, on le relance par
RUN, Aussitôt, plantage avec "Improper
Argument in 30" ! En 30, il y a le
GOSUB qui, lui, débute par SYMBOL
AFTER 64 et, comme le précèdent,
SYMBOL AFTER.64 est resté actif, ça
plante. Faire toujours précéder un
SYMBOL AFTER par un CALL &BB04 qui
élimine les précédents.
- Gag n° 2 : cet utilisateur de CPC
couleur détestait programmer en lettres
jaunes sur fond bleu foncé. Il commen-
çait toujours une saisie de listing par
INK 1,0:PAPER 2:CLS
donc en lettres noires sur fond bleu ciel.
C'est effectivement plus net et reposant.
Oui, mais le long programme recopié
commençait par PEN2:CLS... Sitôt lancé
par RUN écran est vide et bleu ciel ; ESC
et clavier apparemment inactifs ; affole-
ment I Reset. Normal avec PAPER et
PEN de la même couleur...
Est-ce tout ?
Cette liste de "gaffes" n'est pas exhaus-
tive, hélas. L'auteur s'est inspiré de plu-
sieurs années de «courrier des lecteurs»
et d'animation de club informatique, pour
recenser les cas les plus classiques ou
les plus "curieux". A ce propos, si vous
êtes complètement bloqué malgré moult
vérifications, n'écrivez pas simplement
«J'ai retapé très fidèlement le listing de
votre programme TRUC et il ne marche
pas. Dites-moi où est l'erreur». Ce ne
sera possible que si vous joignez votre
listing ou, à défaut d'imprimante, une
cassette. Avec un enregistrement, le dia-
gnostic sera quasi immédiat, d'où une
réponse rapide.
LES FAUTES DE PROGRAMMATION
Comme nous l'avons dit au début, il y a
l'erreur "immédiate", genre "Syntax
Error" ou "Improper Argument", et l'er-
reur "fortuite" qui survient un |our dans
un programme qui tourne depuis long-
temps et ce à la suite d'un concours de
circonstances que le programmeur
"aurait dû prévoir" (comme pour la fusée
Ariane, mais un logiciel est quand même
vendu moins cher...).
Tout cela ne veut pas dire qu'un bug se
traduise toujours par un arrêt-plantage ;
il peut aussi fournir des résultats absur
des qui, pour l'instant, ne provoquent
pas de plantages.
Il n'est pas possible de faire une liste de
toutes les erreurs possibles en BASIC.
Ok ? En revanche, il va être bon de
dénoncer celles qui sont au Hit Parade ;
et qui d'ailleurs s'y accrochent... On
commencera donc par l'éternel grand
champion toutes catégories :
Les initialisations de variables
Contrairement à la plupart des langages,
le BASIC initialise toute variable incon-
nue à zéro. Faites PRINT 22, réponse ;
PRINT ABCS, réponse chaîne vide ["").
Alors, on en prend l'habitude et pour
démarrer un comptage lou "incrémenta-
tion"! on écrit simplement K = K+1.
Donc, au premier passage, K = 0+1 et
ainsi de suite. Supposons que K ait
atteint la valeur 15. Puis le programme
est amené à repasser par là pour de nou-
veau comptabiliser de 1 à... Si on n'a pas
pris la sage précaution de réinitialiser par
K = 0, le deuxième comptage va démar-
rer à 1 6 I
Même remarque avec le classique
WHILE RS = "":RS = INKEYS:WEND
au premier passage l'ordinateur attend
que vous pressiez une touche. Vous
pressez N, donc RS = "N", on "passe"
le WEND. Deuxième passage par cette
ligne : RS vaut toujours "N", donc "pas-
sage" du WEND sans attente d'un
INKEYS au clavier ! Vu ? Il aurait suffit
juste avant le WHILE de programmer
R$ = "".
Une autre source d'ennuis est notre man-
que d'imagination pour les noms de
variables ; toujours les mêmes lettres qui
reviennent, d'où risque d'homonymies
catastrophiques. Exemple : vous avez
programmé un compteur par 1 = 1 + 1.
Votre programme fonctionne très bien ;
puis, un jour, vous décidez de le complé-
ter par un nouveau sous-programme qui
affiche un message à l'écran. Pour avoir
le temps de le lire, vous mettez la clas-
sique boucle d'attente de trois secondes
FOR I = 1 TO 3000:NEXT
RETURN et le cycle repasse par le comp-
teur qui saute ainsi à 3002. Surprise...
Deux conseils :
- Initialise. vos variables
|K =0:R$ = "") même si cela semble ne
servir à rien (pour l'instant...!.
— Méfiez-vous des homonymes en
noms de variables, tout particulièrement
lorsque vous retouchez un long pro-
gramme ancien. Adoptez des noms à
consonnances martienne ou vénusienne,
du genre ZZZ ou WYW ; c'est plus sûr
que I, N ou K...
Nota
Pour les cas épineux, je vous recom-
mande le programme "Références croi-
sées" de TO MINH TRI, publié dans CPC
n° 7 page 65 : il liste les variables par
ordre alphabétique avec les numéros de
lignes où elles figurent. Une pure
merveille I
Les farces des valeurs nulles
pour un ordinateur qui réplique par "Divi-
sion by zéro in...". Donc, à chaque divi-
sion, posez-vous la question de savoir s'il
y a une "chance" pour que le diviseur
soit nul. Exemple classique A = B/IC-D],
Même si la probabilité pour que C = D est
infime (donnerait division par zéro), dites-
vous que cela arrivera le jour où vous
ferez une démonstration de votre pro-
gramme. ( = loi de MURPHY ou de
"l'emm... maximum"), il faut prendre
ses précautions
CD = C-D:IF ABSICDK0.001 THEN
CD -0.001
A = 8/CD
Autre cas, les paramétrages de comman-
des BASIC, par exemple LOCATE
12,Y:PRINT AS
Il est sage de faire précéder par
IF Y<1 THEN Y = 1
un risque associé est celui de l'OVER-
FLOW avec les nombres entiers :
N% =A/B est dangereux. Ecrivez plutôt
IF ABSIA/BK 32767 THEN N%=A/B
Les INPUT et les DIM
Ces causes d'erreurs arrivent en troi-
sième position. Ce sont des sujets assez
vastes et nous leur avons déjà consacré
récemment deux articles : "La gestion
des réponses" dans CPC n" 19 ; "L'ex-
ploitation des tableaux DIM" dans CPC
n° 21.
La logique illogique
Les fonctions "logiques" sont les
IF... THEN, ELSE, AND, OR, NOT et
XOR.
XOR( - OU exclusif] est d'un emploi peu
fréquent. Ces fonctions ont un fonction-
nement TRES STRICT, mais qui ne géné-
rera jamais de code d'erreur si elles exé-
cutent tout autre chose que ce que vous
aviez prévu. C'était à vous de ne pas les
employer à tort et à travers. Hélas, c'est
facile...
Le risque initial est de traduire en BASIC
une pensée en "langue française",
exemple «j'accepte les réponses "0" ET
"OUI" comme valables», alors le "débu-
tant" programme
IF RS = "0" AND RS="OUI" THEN
GOSUB 5000
ce qui est "logiquement" impossible ; il
fallait écrire OR et non pas AND.
Mais la championne des gaffes classi-
ques consiste à mettre plusieurs "clau-
ses" (séparées par des :) sur une même
ligne, en oubliant ce principe essentiel :
si un IF n'est pas satisfait, les clauses
suivantes ne sont pas lues par BASIC.
IF N>5 THEN P- 10:A = B'2
Ici avec N = 3 le A = B* 2 n'est pas exé-
cuté ; après un IF non vérifié BASIC
passe immédiatement à la ligne sui-
vante ! Sauf s'il y a un ELSE.
IF N > 5 THEN P = 1 ELSE P =■ 20
Un ELSE est très catégorique ; passé
cette ligne, on aura P=10 ou bien
P = 20. Pas d'autre alternative possible I
On peut mettre un IF après un ELSE,
BUG, OU ES-TU ?
IF N>5 THEN P-10 ELSE IF N<3
THEN P-30
Cela se traduit par la "table de vérité"
6 10
7 10
A méditer...
Une condition non vérifiée prend la valeur
zéro, vérifiée elle vaut -1 et non pas 1 .
Essayez PRINT (12 =2*6), réponse -1.
Remplacez 12 par 13, réponse zéro.
Supprimez les parenthèses, ça marche
C = (12 = 2*6I
IF C THEN GOSUB 3000
Ce IF C signifie "si C non nul". Vous
pouvez le remplacer par IF C = -1 , ma/s
pas du tout par IF C = 11...
Dans le c
IF C -0 THEN GOSUB 4000 ou IF NOT
C THEN GOSUB 4000.1F NOT C signifie
Pour combiner dans une même ligne des
AND et des OR, il ne faut pas hésiter à
utiliser des parenLheses Même si elles
ne servent à rien, c'est plus sûr et le lis-
ting est plus clair à lire
IF (MARQS ■ "AMSTRAD") AND
(TYP-464 OR TYP = 664 OR
TYP = 6128| THEN PRINT "c'est le meil-
leur BASIC"
Un "test" par =, > , <, est donc noté
par 1 (vrai) ou par zéro (faux). Ceux qui
aiment les maths s'apercevront alors que
AND est l'équivalent de " et OR l'équi
valent de + .
Avec de l'aspirine à portée de main, vous
pouvez imbriquer plusieurs niveaux de
parenthèses avec des OR, AND, NOT,
mais alors prenez la précaution de tes-
ter votre ligne logique par un petit pro-
gramme d'essai (commençant par des
INPUT) et ce afin de vérifier que la "table
de vérité'' obtenue currespond bien à vos
desiderata.
Attention à la fonction XOR ! Super res
trictiva : (A = & XOR B ^ 1 ) n'est vraie
( 1 ) que si l'un seulement de ces deux
lests est vrai. Faux si ces deux égalités
sont vérifiées (ou aucune des deux)
Les sorties de boucles
Supposons une boucle FOR NEXT qui
débute en ligne 300 par FOR N = 1 TO
1 5 et qui se termine par 460 NEXT. En
ligne 350, un IF permet de sauter la suite
du "traitement" et de passer au N sui-
vant. La syntaxe normale est
350 IF .... THEN GOTO 460
alors la grosse bourde (hélas classique)
serait d'écrire
350 IF... THEN NEXT
En effet, quand BASIC rencontre un
FOR, il repère d'abord où est son NEXT,
ici en 460. Il ne verra pas celui de la ligne
350 "masqué derrière" un IF. Alors si le
IF le conduit a ce NEXT en 350, il risque
fort d'y avoir du vilain...
Si, en ligne 380, vous prévoyez un ca;
permettant de mettre fin à cette boucle,
donc avant que N atteigne 1 5, la pire des
choses serait d'y mettre un GOTO 470.
En ce cas, il suffit d'écrire :
380 IF... THEN N = 15:GOTO 460
et l'on sort PROPREMENT, sans risque
de choc en retour.
Idem pour une boucle WHILE WEND On
met la variable à la valeur attendue, et
GOTO le numéro de ligne du WEND.
Idem pour les sous-programmes : pour
une sortie prématurée ne pas faire
IF... THEN RETURN mais THEN GOTO
le numéro de l'UNIQUE RETURN.
Si, dans une boucle ou dans un sous-
programme, vous désirez Faire un détour
vers l'extérieur, il est formellement inter-
dit d'opérer par GOTO I Uniquement par
GOSUB Sinon c'est l'affolement des
"pointeurs".
On ne peut pas imbriquer des boucles
WHILE WEND (dans le BASIC des CPCI.
LES ERREURS DU PASSE
Ces erreurs ont deux causes :
- Présence de lignes obsolètes que l'on
a oublié d'effacer, par étourderie. Son
des lignes dont on a changé le numéro
pour les placer ailleurs, soit des lignes de
tests que vous aviez insérées ça et là ;
du genre
629 PRINT N ;AS:ST0P
(utilisez toujours des numéros de lignes
se terminant par 9 ; plus faciles à
repérer...!
— On s'est trompé de version ! La pre-
mière chose à faire, avant de modifier un
programme, est d'en changer la date
dans le REM de la ligne 10. Et comme
vous avez pris la précaution (?) d'enre-
gistrer votre logiciel vedette de 13 kilo-
octets sur quatre disquettes différentes,
votre dernière modification porte en fait
sion... Alors...
LES LOCALISATIONS DIFFICILES
Votre programme ne plante pas, mais
conduit à des résultats farfelus. Donc le
bug peut être n'importe où ! Le premier
travail consiste alors à localiser la zone
du listing qui est coupable. Par exemple,
ce passage de 20 lignes que l'on réduira
ensuite à une. Il faut jouer au détective
Insérez des lignes-mouchard comme
629 PRINT N;AS:ST0P
et vous redémarrez en tapant CONT.
- Testez en mode direct des sous-
programmes. Par exemple
A=4:X-0:AS = "Paul ":GOSUB 3000
Et là, toujours en mode direct, interrogez
par PRINT certaines variables.
Autre variante des "données fixées" :
NB=5;BS -t"JEAN":GOTO 540
et vous récupérez les résultats plus bas
dans une ligne-mouchard. Remarquez
qu'il ne faut pas utiliser RUN qui annule
toutes les variables en cours, mais GOTO
ou GOSUB qui les conserve.
Deuxième degré : Vos mouchards vous
donnent partout des indications norma-
les, donc le bug n'apparaît que pour cer-
taines valeurs de la variable M. Vous ne
voyez pas pourquoi, mais le fait de con-
naître les valeurs coupables va vous met
tre sur la voie.
1 FOR M = -10 TO I 20:G0SUB 5000
2 IF LEN(BS)>5 THEN STOP
3 NEXT:END
Et on lance par GOTO 1
Troisième degré : ça y est ! Vous avez
identifié ce qui provoque l'erreur, le
groupe de lignes où le mal se développe,
mais vous ne comprenez toujours pas
pourquoi. En effet, il s'agit d'un passage
très complexe avec des IF... THEN
GOTO (ou GOSUB) ELSE GOTO. ..etc.
Par où passe le programme ? Les armes
sont TRON et TROFF (abréviations de
TRACE ON et TRACE OFF).
TRON va faire inscrire à l'écran les numé-
ros de lignes où passe le programme
(entre crochets). TROFF annule TRON.
Mettez très peu de lignes entre TRON et
TROFF car un écran est vite rempli I
Ça y est le bug est mort, ça marche. Sur
tout ne sauvegardez pas ! Votre pro
gramme en RAM est un champ de
bataille. Notez sur papier la fameuse ligne
corrigée, puis NEW I LOAD ; correction
de la ligne et enfin SAVE. Vous voyez
pourquoi ~>
CONCLUSION
Le bug, c'est le sel de la programmation.
Que ce serait triste si tous les program-
mes fonctionnaient toujours du premier
coup I Que c'est bon un bug farceur qui
loue à cache-cache pendant des heures,
que l'on traque en se prenant pour
Columbo Et puis çà dispense les pro-
grammeurs de s'acheter des logiciels
i 270 francs la disquette..
INITIATION
Yves GERAULT
(SUITE)
Les lignes PASCAL qui appartiennent au bloc instruction sont elles-mêmes appe-
lées instructions. Une instruction PASCAL sera donc constituée par les caractè-
res compris entre deux points-virgules. Comme nous l'avons vu précédemment,
cette instruction peut être écrite sur une ou plusieurs lignes écran. Voyons main-
tenant les instructions que le concepteur de PASCAL TURBO met à notre
disposition.
INSTRUCTION COMMENTAIRE
Pascal est un langage compilé. Nous avons vu que le code exé-
cutable (en binaire! est obtenu à partir du code source (en ASCII)
via le passage par un traducteur (la compilation). Un point très
important du fonctionnement de ce compilateur est qu'il ne s'oc-
cupe pas de ce pu'il va reconnaître comme des commentaires.
Nous pouvons donc en mettre autant que nous voulons dans
notre texte source cela n'allongera en rien notre code objet.
Alors ne nous en privons pas.
Le compilateur reconnaît comme commentaire tout ce qui se
trouve entre des accolades. Le commentaire commence avec
une accolade ouvrante et se termine avec une accolade fer-
mante. Bien sûr, ce sera une erreur fréquente d'oublier cette
accolade fermante, ce qui fait que le compilateur prendra tout
le reste de votre programme comme un commentaire. Mais cette
erreur est facile à détecter avec un peu d'entraînement.
Pour assurer la compatibilité de PASCAL TURBO sur des micro
ne possédant pas les accolades, le coneepteui autorise une autre
manière de signaler les commentaires : il s'agit des caractères
parenthèse ouvrante suivie immédiatement par
I" astérisque < <(* > > pour le début de commentaire et bien sûr
de astérisque suivi immédiatement de parenthèse fermante pour
la fin de commentaire
Où peut-on placer des commentaires ? A n'importe quel endroit,
dans n'importe quel bloc ou sous-bloc en remplacement d'un
séparateur. En d'autres termes, le seul endroit où il est interdit
• • •
de mettre un commentaire, c'est à l'intérieur d'un identificateur
car, par définition, un identificateur est une suite de caractères
ne comportant pas de caractères séparateurs. Nous utiliserons
largement ces possibilités en commentant très abondamment
nos listings,
LES OPERATEURS ARITHMETIQUES
Il est possible de faire subir à des variables, un certain nombre
de traitements a l'aide de symboles appelles opérateurs arith-
métiques, ils sont au nombre de 12.
Prenons un exemple : si nous voulons calculer la somme de A
et de ES et mettre le résultat dans C nous pouvons schématiser
l'opération par
AFFECTER à C le RESULTAT DEA + B
Ce qui va s'écrire en BASIC : LET C =A +8 ou très malheureu-
sement par abus de langage C = A + B. Ce qui n'a aucun sens
strictement parlant. Bien sûr, tous ceux qui font de l'informati-
que le savent, mais il faut admettre que l'écriture de I = I +■ 1 a
de quoi choquer bien des débutants.
PASCAL fait partie des langages qui n'acceptent pas ce fâcheux
abus de langage. C'est pourquoi il demande à ce qu'on note
AFFECTATION par le syntaxe C : = A + B. Ce < <
est le symbolisme réservé à l'AFFECTATION, o
symbolisme <<=>> à l'égalité comme en anthmêtiqui
not négation bit à bit.
or ou logique bit à bit.
xor xor logique bit à bit.
and and logique bit è bit.
shr décalage de bits à droite.
(shift right).
shl décalage de bits à gauchi
(shlft left).
mod reste de la division.
div division
Les opérateurs + - * / peuvent agir sur
des ob|ets de type entiers ou réels, mais,
attention, le résultat n'est pas toujours du même type que les
opérandes (ex :3/5 = >0.6, les deux opérandes sont entiers,
mais le résultat est réel). Le langage PASCAL vous signalera
une erreur de lonciionrifimem si vous ni.; \ic voyez pas ce genre
Par contre, les opérateurs arithmétiques not, or, xor, and, shr,
shl. mod, div, ne peuvent travailler que sur des entiers et le résul-
tat est un entier.
Une suite d'actions sur une suite d'objets est appelée une
expression. Dans, cette expression comme en BASIC, il y a un
ordre de préséance entre ces opérateurs.
- * / div mod and shi shr
— + - or xor
En cas d'égalité de priorité, le calcul de l'expression se fera de
gauche à droite et l'ordinateur prendra les opérateurs quand il
les trouvera.
Comme en basic, pour éviter les erreurs, mettez vos expres-
sions entre parenthèses pour forcer la priorité des opérateurs.
QUELQUES IDENTIFICATEURS PARTICUUERS
Certains identificateurs ont une valeur par défaut :
pi : 3.1415926536 E + 00
maxint : 32767 (c'est le plus grand entier possible!
true signifie vrai pour un booléen,
false : signifie false pour un booléen
INSTRUCTION AFFECTATION
Le résultat d'une expression est un objet qui a un certain type
suivant la nature des opérateurs que nous avons fait agir. Il faut
bien sûr stocker la valeur de cet objet à l'intérieur d'une case
mémoire identifiée par un identificateur précisément. Ce qui
revient à affecter à un identificateur le résultat de l'expression.
rïoi
mot réservé du langage PASCAL TURBO signalant que
lions effectuer une sortie sur un périphérique,
début des attributs de ma sortie ;
jble dont je veux afficher
oUtput : précise que le canal que ji
séparateur d'attribut,
var. 1 : identificateur repérant le
résultat.
séparateur d'identificateur.
r_2 : idem var.1 .
fin des attributs.
Passons au deuxième exemple en ne parlant que dBs choses
qui changent.
Ist : précise que le canal que je veux utiliser est l'imprimante.
a + b-c ; expression arithmétique dont le résultat sera imprimé,
a shr 2 : idem.
nple
t canal privé de
fich 1 : précise que le canal de sortie i
l'utilisateur (un fichier disque peut-être]
1 23 : PASCAL TURBO autorise les sorties directes de valeur.
'mot' : idem, mais avec une chaîne de caractères, remarquez
qu'en PASCAL, les chaînes sont encadrées par des apostrophes
simples et non par des quotes " " comme en BASIC
PASCAL présente une particularité du point de vue de l'affi-
chage. Contrairement à BASIC, il n'a pas de tabulation par
défaut. Il écrit ce qu'on lui demande d'écrire sur l'écran à la posi-
tion où se trouvait le curseur à ce moment De plus, il ne laisse
aucun espace entre les valeurs. C'est au programmeur de pré-
voir les espaces nécessaires. Cela correspondrait à l'option
BRANCHER LE TURBO
<<;>> du PRINT BASIC.
Certaines facilités sont cependant offertes qui permettent de
solutionner tous les problèmes de mise en page.
- Si on remplace WRITE par WRITELN, l'ordinateur, après avoir
écrit ce qu'on loi a demandé, positionnera le curseur sur la pre-
mière colonne de la ligne suivante : il fers un retour à la ligne
comme une machine à écrire.
— Prenons maintenant l'exemple numéro 4.
var. 1:5:2 : signifie que le contenu de la variable var.1 sera affi-
ché sur 5 colonnes, que le résultat sera cadré à droite avec 2
chiffres après le point décimal lil est évident que var.1 est du
type real).
var 2:4 ; signifie que var 2 est du type entier et qu'il sera affi-
ché sur 4 colonnes cadré à droite.
mot:1 2 : en supposant que mot soit du type string, le contenu
da mot serait affiché sur l'écran sur 12 colonnes.
INSTRUCTIONS READ ET READLN
Nous n'étudierons que le cas de READLN, Nous reviendrons plus
tard sur l'utilisation de READ qui suppose une digression préa-
lable sur la gestion du clavier sous PASCAL TURBO ainsi que
sur la notion généralisée des fichiers (pas de quoi s'affoler, mais
chaque chose en son temps).
L'ordre READLN ressemble beaucoup à l'ordre INPUT du BASIC,
mais en diffère aussi notablement. Des exemples sont donnés
par le listing 2.
La différence essentielle est qu'en PASCAL un ordre READ. cela
ne sert uniquement qu'à lire et qu'un ordre WRITE cela ne sert
uniquement qu'à écrire. C'est assez logique, mais ce n'est pas
le cas en BASIC. La signification des divers champs de cette
sst assez évidente, rappelons-les rapidement.
readln : mot réservé du PASCAL TURBO signalai
teur qu'une entrée vs être faite.
I : début des attributs de l'instruction.
inpul: désigne que cette entrée va être faite par I
standard (le clavierl,
, ; séparateur d'attribut.
var 1 : identificateur de la variable à laquelle va
la valeur de ce qu'on rentrera.
var. 2 ; idem var 1.
I : fin des attributs.
; ; fin de I
u compila
Autre différence notable, les diverses valeurs devront être sépa-
rées par des espaces et non des virgules comme en BASIC.
Cette différence est plus gênante car, en cas d'erreur en entrée,
il n'y a qu'une sanction : la pire II < < runtime error> > et arrêt
de l'exécution du programme. Il y a, bien sûr, moyen d'éviter
ce plantage du programme, mais ce n'est pas encore à notre
niveau. Alors, faites très attention à la syntaxe de vos entrées.
Bien sûr. puisque cette instruction se finit par un < <ln>>,
le curseur se déplace au début de la ligne suivante après avoir
terminé sa lecture.
FONCTIONS ET PROCEDURES
En dehors des opérateurs qui nous permettent déjà de calculer
diverses expressions et d'en affecter le résultat dans une variable
repérée par son identificateur, il est possible d'effectuer d'au-
tres types d'actions qui se nomment des fonctions et des
procédures.
LES FONCTIONS sont des actions déjà connues de ceux qui
ont travaillé en BASIC. Certaines portent même le même iden-
tificateur par exemple <<cos>> pour cosinus, d'autres en
différent par exemple < <length> > au lieu de < <len>> pour
longueur d'un mot. Toutes ces actions ont un point commun :
elles ne délivrent qu'une seule valeur qui doit être affectée à
une variable (ex : cosinus 20.degrê: - cos (20);].
LES PROCEDURES ne sont pas totalement inconnues à l'utili
sateur du BASIC. Prenons comme exemple <<locate
20,10>> .En PASCAL TURBO, elle sont généralisées et plus
performantes. Citons pour exemple < <str(valeur,mot)> > qui
convertit une < <valeur> > numérique entière en un
< <mot> >, une autre < <gotoxy (25,301 > > aura le même
sens que notre < < locate > > en BASIC.
Ces fonctions et procédures sont nombreuses et nous nous
attarderons dans notre prochain article à vous les décrire. Mais
où le PASCAL devient génial, c'est que s'il n'v en a aucune qui
vous plaise pour résoudre votre problème. PASCAL vous auto-
rise à la créer à votre guise et ensuite a vous en servir comme
si Bile avait toujours existé (pratique non M!) Nous y reviendrons
très prochainement.
Pour clore cet article sur les entrées sorties simples, le listing
3 vous montre ce qu'on peut faire avec les quelques instruc
tions que vous avez maintenant à votre dispositron,
ïting 2 : Exemple d'instruction readln
iting 3 : Programme Pascal illustrant les notions développées d
mnmm
PHOTO-SPRITE
• • • ; ; "
< ft> ï ï.«r. cas*
<M> iSi a jow .
<0> .go«ne .
<t> crayon ti-s
PHOTO-SPRITE est une "boîte à outils"
permettant la gestion de mini-images
graphiques de 32*32 points (genre
photo d'identité).
Elle vous permettra de créer et de repro-
duire des photos, blasons ou représen-
tations d'objets pour agrémenter un jeu
nitialis
L'ensemble comprend :
— une routine d'affichage en langage
mach-ne baptisée PL0T1 . ou PL0T2 sui-
vant son adresse d'implantation, qui sera
générée par le programme BASIC CHAR-
GEUR (listing n° 1) ;
- deux utilitaires CONVERT et GENE-
PHOT pour générer les fichiers PHO
Dnn;
n de la fenêtre n
i vous e
TOx.BIN
les
nage;
visualiser.
Le programme fonctionne sur CPC 464,
664 ou 6128,
LA ROUTINE PLOT1
Ecrite en langage ASSEMBLEUR pour
avoir un affichage très rapide, elle est
appelée à partir du BASIC par un CALL
&A100 après avoir fixé l'origine de la
fenêtre graphique. La routine peut repro-
duire des images en mode 1 avec qua-
tre couleurs et en mode 2 avec deux
Elle occupe les adresses &A100 à
&A170, l'image occupe 1024 octets de
&A200 à &A5FF, l'espace restant entre
les deux est utilisé par la routine pour ses
variables.
Si vous désirez faire défiler plusieurs pho-
tos au même emplacement, vous pou-
vez appeler la routine par CALL&A1 38,
jriez des exten-
sions connectées autres que le lecteur de
disquette (synthétiseur, interface
RS232C...I la routine sera en conflit avec
l'espace mémoire réservé pour ces der-
nières. Les connaisseurs pourront faci-
lement reloger la routine en modifiant les
adresses de saut ; pour les autres, le
chargeur BASIC de la routine vous pro-
posera deux adresses d'implantation
&A100 ou &8100. Si vous avez des
extensions choisissez &81 00 mais pen-
sez à modifier en conséquence les pro-
grammes BASIC.
LE PROGRAMME CONVERT : (listing 2)
Vous permet de créer un fichier PHO-
TOx.BIN à partir de données en DATA.
Conservez les DATA de vos créations,
si vous effaciez votre fichier BIN c'est
le moyen le plus rapide de le reconstituer.
Seules les photos en 2 couleurs peuvent
être traduites en DATA (ces 2 couleurs
correspondant aux ink et 1 de préfé-
rence!, lors de la traduction, toute cou-
leur différente de l'ink est considérée
égale
i 1.
LE PROGRAMME GENEPHOT :
{listing 3)
L'outil indispensable pour donner libre
cours à votre talent...
— la saisie s'effectue directement à
l'écran, le curseur est déplacé par les flè-
ches ou avec le joystick. La case poin-
tée prend la couleur du crayon sélec-
tionné en pressant la touche COPY ou le
bouton FEU du joystick.
Les commandes disponibles sont affi-
chées dans une fenêtre :
— "Load" charge une photo après vous
en avoir demandé le numéro. La photo
sera affichée à l'échelle 1 et reproduite
dans la grille de saisie pour être éventuel
lement modifiée ;
— "Save" sauvegarde une photo. Lors
de l'appel de cette fonction, une mise à
jour de l'image à l'échelle 1 est effectuée
automatiquement. Un sous-menu vous
permet la sauvegarde, l'édition des
DATA (pour photos en 2 couleurs uni-
quement) ou le retour au menu principal ;
— "Couleurs" appelle un sous-menu
qui vous permet d'adapter l'écran à votre
goût et de choisir les couleurs des
crayons. Les numéros de couleurs sont-
affichés en regard des commandes de
sélection pour le bord et les quatre
encres ;
— "Aller case" déplace le curseur à
l'emplacement demandé ;
— "Mise à jour" code en mémoire la
photo de la grille et affiche la représen-
tation à l'échelle 1 correspondante ;
- 0, 1 ,2,3 sélectionnent le crayon actif
pour la saisie, ce dernier est repéré en
permanence par une flèche ;
— pour les 2 dernières commandes,
"Effacer" et "Quitter", une confirmation
est demandée.
NB ; un BREAK peut se produire si vous
demandez le chargement d'une photo ne
figurant pas sur la disquette, ce type
d'erreur n'étant pas mterceptable en
BASIC, il vous faudra relancer le pro-
gramme par RUN 520.
ADAPTATIONS DE LA ROUTINE PLOT
La routine peut reproduire également les
photos en mode 2 (seulement celles
générées en 2 couleurs).
L'affichage en 2 couleurs peut être accé-
léré en pokant des en &A14B. &A14C,
&A14D.
Vous pouvez changer les dimensions de
la fenêtre graphique, mais il vous faudra
également modifier GENEPHOT ainsi que
CONVERT et tenir compte de la taille
mémoire des fichiers PHOTOx.BIN.
En conclusion, cet ensemble devrait vous
permettre de donner à vos programmes
un "look pro" et vous inciter à vous ini-
tier à l'Assembleur, dans ce dernier cas
deux ouvrages vous seront nécessaires :
- le FIRMWARE de votre CPC qui vous
donnera toutes les informations sur les
routines utilisables de la ROM ;
- PROGRAMMATION DU Z80 de
RODNAY ZAKS aux Editions SYBEX qui
est la véritable bible pour ce micropro-
$qkc d'emL
LES PASSAGERS
DU VENT 2
(NFOGRAMES
Aventure
Durant une période de trois mois,
voua avez pu tomber sous le
charme des Passagers du Vent.
Maintenant, il est temps de passer
ii la suite qui d'ailleurs n'est
certainement pas la fin.
Dans ce deuxième épisode, nous
retrouvons Isa, héroïne principale,
qui est une jeune libertine
entreprenante en cette (in de
XVIII' siècle. Elle a entrepris de
voyager dans le mande entier Ides
ports bretons aux côtes africaines)
afin de récupérer un titre qui lui a
été usurpé lorsqu'elle était petite :
celui de comtesse.
Avec "l'heure du serpent", nous
nous retrouvons dans le village du
roi KPENGLA. Isa va devoir
affronter aussi bien les mystères
vaudous que les fauves de la
Nous retrouvons avec joie un
graphisme toujours aussi éclatant
et envoûtant avec, comme dans le
premier épisode, une musique
superbe changeant avec chaque
scène... Cette fois, il y a huit
scènes différentes avec un petit
plus : en effet, à la fin des cinq
premiers tableaux, le sage vous
pose une question sous forme
d'énigme ; è vous de sélectionner
le bon personnage pour donner la
réponse et obtenir ainsi un indice
pour l'issue finale de l'histoire.
Dernière nouveauté par rapport au
numéro 1 : en plus du défilement
des légendes obtenues en
sélectionnant les icônes des
personnages, vous pouvez
intervenir parfois sur la partie
graphique et utiliser ainsi certains
objets.
En conclusion, la série des
Passagers du Vent doit avoir se
placB dans votre "lagithèque".
IW.KirLS
LE CHEVALIER
BLANC
COBRA SOFT
Arcade/Aventure
Avec cette nouvelle production de
Cobrs, vous entrez dans une
histoire de type moyenâgeux avec
le roi, la princesse et le beau
chevalier servant qui, de surcroît,
est blanc pour l'occasion.
Tout commence lorsque la
princesse et le Chevalier Blanc se
promènent tranquillement. Ils se
font attaquer par d'étranges
créatures qui, non contentes
d'enlever le princesse, capturent
également les armes du Chevalier.
Celui-ci n'a alors d'autre but que
d'aller délivrer la balle dans un
étrange château après avoir
récupéré ses armes. Pour cela, il
doit commencer par capturer un
cheval blanc... Ensuite, il devre
traverser les marais en veillant
bien è ne pas se trouver sur le
chemin d'une étrange créature
blanche car, si tel était le cas, il
se retrouverait à son point de
départ. Pouvant récupérer ses
armes dans les marais, il ne lui
reste plus qu'à pénétrer dans le
château et à terminer l'histoire en
héros I...
Ce jeu requiert une certaine
habileté au joystick. Si vous
possédez cette qualité, vous
pouvez passer un agréable- moment
avec ce logiciel "mignon" tent eu
niveau du scénario qu'au niveau du
graphisme ou de le musique.
BALLBLAZER
ACTIVISION
Arcade! Simulation
Encore un logiciel présentant un
jeu se passant dans le futur, mais
possédant deux éléments
traversant tous les temps : un
ballon et des poteaux de buts !..,
Le championnat Interstellaire de
Ballblazer se passe dans les
années 3000... et quelques
poussières. Le but de la finale est
de devenir le roi de tous les jeux.
Pour y parvenir, vous vous
retrouvez sur le terrain face è
votre adversaire. L'écran de votre
Amstrad vous permet d'avoir
chacun votre propre vision du jeu
puisqu'il est divisé en deux
parties... Vous disposez de 3 mn
(ou moins si vous le désirez t) pour
prouver que vous êtes le meilleur.
Après avoir cepturé la balle, il ne
vous reste plus qu'è vous
précipiter au lond du terrain pour
marquer un but et de renouveler
l'opération dix fois de suite I...
Alors peut-être aurez-vous mérité le
titre de "Masterblezer"..,
Avec Ballblazer. vous avez entre
les mains la possibilité d'âtre un
as de la balle grâce é des règles
de jeu simples et è une bonne
animation. Par contre, on ne peut
pas dire qu'il y ait eu une très
grande recherche graphique...
également sur celle du déplacement
de la batte. De cette manière.
jrf)!>s t .
chacun peut se régaler suivant ses
f
Igj^
propres capacités, d'une part, et
-ïfï
s'améliorer pour devenir un crack,
^tâfê<-\
d'autre part.
/Wfï^
lt£*i*m^
RELIEF ACTION
K'WÉa
LORICIELS
Avenfure
Ce nouveau logiciel veut nous
apporter une nouvelle dimension au
jeu d'aventure. Quelle est-elle ?
Pensez-vous... Il s'agit tout
•« ts
&Zém
simplement de relief dynamique !
• .,"■■*
Campons tout d'abord le décor :
•. '•■«.._' .
.»'
vous faisiez partie d'une équipe
scientifique en mission sur la
% l m> |
1
planète VEGA. Malheureusement,
durant le vol, une mauvaise
manipulation du la bar an tin a créé
un monstre... Et, désormeis, vous
êtes le seul rescapé de l'équipe.
Vous allez devoir déambuler dans
tout le vaisseau (rassurez- vous, il
n'y a que trois niveaux et une
cinquantaine de pièces 1), afin de
rassembler pièces et indices pour
HEAD OVER HEELS
briques ! Ne vous fiez pas aux
apparaître des lettres. Il y a neuf
atteindre la navette. Bien entendu.
OCEAN
apparences, car ailes sont bien
possibilités différentes, mais vous
il est un objet que vous devez
Arc ode /Aventure
souvent trompeuses. C'est
avez, par exemple, le E qui fait
absolument vous procurer pour que
entendu ! Il y a bien une balle et
agrandir la batte ou le X qui vous
le monde entier ne doute pas de
Avec ce logiciel, vous devrez vous
des briques, mais ce jeu est tout
apporte une vie supplémentaire.
vos propos : il s'agit du carnet de
préparer à entrer dans un système
simplement diabolique...
Vous me direz que tout ceci est
bord du commandant...
solaire L'Empire de Dentnoire est
Ce qui frappe en tout premier lieu,
déjà fabuleux. Mais Km ko ut fait
Relief Action nous propose des
constitué de quatre planètes :
c'est la multitude de couleurs
encore mieux car vous avez des
écrans avec le dessin des pièces
Egyptus, Péni rentier, Satan et le
qu'offre chaque écran. De plus, le
options. En effet, eu départ, la
sous forme filaire. De plus, le vue
Monde du Livre. L'Empereur y fait
régner un régime plus qu'oppressif
i
mais personne n'ose sa rebeller et
c'est bien ce qui inquiète une
planète voisine nommée bien sûr
Liberté.
Les habitants de Liberté sont
DD00Z95D
LEVEL ODE 1DD uuluufflm
im~
composés de deux parties : la tète
■K aHHISFlSBïl
IMIlPSBiSHIŒHWflBBïîfSI
B^^HSPHB!
et les jamhas et ailes peuvent
S ■
■
faire des actions en étant unies ou
M"] 111 ■
■
séparées. Votre mission consiste è
■
réunir les deux parties d'un
3 ■
■ "
habitant de Liberté qui sont
s ■
■
enfermées dans le château da
■
Dentnoire. Une fois cette première
5 ■■
««
mission réalisée, il vous s ère peut-
ff |
1 ■
•1
être possible de provoquer un
■
' ■
soulèvement et de mettre fin è ce
■
■
régime diabolique 1...
Avec Head over Heels, vous
évolue; dans un nombre très élevé
de pièces avec des pièges à
profusion. Vous avancez dans un
■■■■
1
■
beau graphisme en 3D, très riche
3L ^^' »,^fe«»
■i
_^
en détails et avec des couleurs
superbes ; une garantie pour passer
«■MM
il J tîîï
*w^r
un bon moment... d'autant plus
que le jeu risque fort de ne pas
Être terminé en 1 heure I
KRAKOUT
dessin formé par les briques
batte se trouve è droite, mais
en 3D peut être simplifiée en
Grem/in Graphics
change è chaque niveau. Mais ce
vous pouvez essayer de jouer avec
sélectionnant l'option relief qui fait
Arcade
n'est pas tout ! En effet, lorsque
la batte è gauche {pas si évident
apparaître des traits dédoublés
vous touchez certaines briques.
que cela 1). Enfin, derniers points
bleus et rouges. Dans ce cas, vous
En regardant le premier écran,
elles subissent un phénomène de
importants : vous pouvez agir sur
devez utiliser la paire de lunettes
vous vous dites : encore un casse-
retournement et laissent alors
la vitesse de 1
elle, mais
qui est livrée avec le logiciel. Ceci
est un aspect intéressant du jeu,
SIGMA 7
mais il faut également considérer
que vous suivez un déplacement du
décor en temps réel, ce qui vous
permet de vraiment participer é
l'aventure. Somme toute, un
Comme son nom l'indique, co \i
produit très intéressant à étudier.
se divise en 7 étapes, chacune
d'elles comportant trois phases.
Vous êtes aux commandes d'un
umssea h et vous devez taire 'ace.
avec réflexes et vivacité, é tout ce
qui se présente devant vj„s sans
aucune exception, car vous n'avez
vraiman! pas le temps de vous
poser le question : ami ou
ennemi ?
Vous devez tout d aboro atteindre
une usine en vous trayant un
chemin entre les mines de défense
aèneooe {la distance è parcourir
grandit é chèque étape., i. Une fois
arrivé "à boo port", vous diriilave;
dos sentiers sur lesquels des
rouuls mires se précipitent sur
vous de façon inamicale. Avant de
sortir de cette phase, retenez bien
le motif que présentent certaines
pastilles car il vous sere fort utile
lors de la phase finale... Dans
celle' ci, vous devrez être très
rapide pour reconstituer le dessin ;
cette partie est vraiment tris
délicate.
Avec ce logiciel, vous trouverez
une bonne séance d'entraînement
aux réflexes avec, de surcroît, un
graphisme et un son agréables...
SCALEXTRIC
m
Simulation
A cette époque où la saison des
Grands Pnx a recommencé, vous
pouvez tester voue habileté é tenir
un vo-ani de Formule 1 avec ce
logiciel.
Vous avez la possibilité de faire la
course contre l'ordineleur ou
cootie uo adversaire eo chair et en
os (malheur à ii. s'il hérite des
commeodes au clavier !).
Pour commencer, il (eut
sélectionner les conditions dans
lesquelles vous voulez concounr
après le choix du circuit (vous
evez 17 circuits de Formule 1 è
votre disposition), il ne vous reste
plus qu'à indiquer le nombre de
tours que vous désirez couvrir et
le lorce de votre adversaire,
□e plus, si aucuo circuit oe vous
satisfeit. vous avez le possibilité
de coostruire votre propre parcours
et de le sauvegarder sur cassette
ou disquette... Ainsi donc, les
possibilités de couises sont
pratiquement illimitées.
L'écran se divise en deux parties,
permet! a oi eiosi de visualiser la
course de chèque concurrent : de
plus, le vue totale du circuit
mootre cl ei rement les positions
respectives des concurrents .. Avec
Scalextnc, vous evez entre les
mains une bonne simulation, avei
un graphisme plus que correct
ACCESS II
E.S.A.T. SOFTWARE
Utilitaire
Le lecteur de disquettes intègre à
l'Amstrad (612B, 664) ou bien
séparé de l'unité centrale 14641 est
bien utile à ceux qui veulent traiter
des fichiers. Malheureusement, les
CPC ne sont pas pourvus d'une
fonction fort intéressante : l'accès
direct. Imaginons que vous ayez un
fichier de 30 Ko. la recherche
d'une fiche se fait par le
chargement de tout le fichier en
mémoire. Avec l'accès direct, la
identique à celle de "OPEN" en
BASIC Amstred. Elle possède
3 paramètres : le nom du fichier,
le nombre d'enregistrements
maximum et la longueur des
enregistrements (de 3 h 2551. En
effet, avec l'accès direct, toutes
les fiches doivent avoit la marne
taille. Cela permet de les retrouver
plus facilement.
IDISCLOSE : an le devine, il s'agit
de le fermeture du fichier. Celle-ci
est obligatoire, sinon il y a parte
de données.
IDISCWRITE : après avoir ouvert
un fichier, il faut écrire les
recherche se fait sur le disque et
seule la fiche concernée est mise
n RAM. Cela entraîne un gain de
place conséquent et limite la taille
des fichiers è la capacité d'une
" a de disquette (.170 Ko
environl.
Le programme Access II vous
propose une gestion de fichiers en
accès direct par l'intermédiaire de
routines RSX. Les nouvelles
instructions sont au nombre de 5 :
IOISCOPEPJ : son action est
données. DISCWRITE comprend
3 paramètres ; un code d'erreur R.
le contenu de l'enregistrement et
le numéro de l'enregistrement. Le
code d'erreur signale une anomalie
survenue après l'utilisation de
IDISCWRITE.
lOISCREAD : il s'agit de la routine
de lecture des données. Elle agit
de la même façon que IDISCWRITE
et possède le même nombre de
paramètres.
Dernière instruction : IDISCFIND
permet de faire des recherches
dans un fichier. Il suffit de définir
quatre variables : R le code
d'erreur, le contenu de
l'enregistrement, le premier numéro
de la recherche et le dernier
numéro. La recherche peut porter
sur l'enregistrement ou sur le
numéro.
Un programme de démonstration se
trouve sur la disquette et vous
donnera un exemple de ce qu'il est
possible d'obtenir avec l'accès
direct. Le menu vous propose la
création d'un fichier, quelques
utilitaires : chargement de USER,
de lecteurs, augmentation de la
vitesse du moteur. Un éditeur de
secteur vous permettra de modifier
des fichiers en altérant directement
le contenu du disque.
2 exemples, lecture et rechercha
sur un fichier, vous permettront
d'apprécier les capacités du
programme. Transferts concerne
les échanges de fichiers entre
lecteurs. Aide et Quitter ne
nécessitent pas d'explications
quant à leurs fonctions. Pour
utiliser Access II sur vos disques,
il faudra charger le programme
□ ISCMAM par MEMDRY
&9470-110AD "OISCMAN", puis
initialiser en tapant CALL &947D.
Je me permets de décrire ces
opérations puisqu'elles ne sont pas
précisées en clair dans la notice.
Un logiciel simple à utiliser et qui
vous ouvre de nouveaux horizons.
IMPRESSION
E.S.A.T. SOFTWARE
Utilitaire
esseur d'une imprimante
flambante neuve. La sortie de
listing ou l'impression d'un
message sur papier ne posent pas
b problèmes grâce è LIST t! 8 et
PRINT il B. En revanche, les
justifications, les fabulations, les
différents styles de caractères
sont beaucoup moins accessibles. Il
île en effet illusoire de
parvenir à emmagasiner les suites
interminables de CHRS même evec
a nu cl comme support.
Le logiciel "IMPRESSION" vous
offre une série de RSX (une
soixantaine) permettant toutes
sortes d'acrobaties imprimables. La
nombre de nouvelles instructions
peut vous effrayer, mais le nom de
checune d'entre elles a été choisi
de manière è suggérer leur
fonction. Ainsi NT AL provoque
l'impression en "italique" alors que
IAITAL supprime ce style de
caractères. Chaque fonction
possède son opposé signalé par le
préfixe "A". Les fabulations
horizontales et verticales ont aussi
leur RSX précédant en cela les
avances du pépier et las sauts de
page,
Quelques instructions plus
exotiques : IBIP 1 qui fait sonner
le buzzer plusieurs fois, IVNID qui
règle l'imprimante en mode
unidirectionnel.
J'ai gardé le meilleur pour la fin :
la recopie d'écran. COPYTEXTE.
comme vous l'avez deviné, effectue
uni recopie rapide de l'écran texte.
COPYGRAPHIQUE permet une
"hard-copy" de l'écran graphique
en deux couleurs (encre et fond).
Cette recopie est satisfaisante en
MODE 2 où le nombre de couleurs
est limité. Si l'écran utilisa les
16 couleurs disponibles (MODE D),
il sera difficile de rendre toutes les
nuances et les dégradés avec de
l'encre noire. C'est pourquoi une
fonction "TRAME" a été ajoutée
permettant de coder les couleurs
sous forme de motifs
géométriques.
Sur un écran monochrome, on
utilise ICIJUI.EUR ou INTRAME
pour déterminer le numéro des
couleurs présentes. Il ne resta plus
qu'è lancer ICDPYTRAME ou
INCQPYTRAME pour obtenir sur
papier un dessin "coloré". Si vous
n'êtes intéressé que par une
portion de l'écran, COPYPART
imprimera le motif choisi
auparavant. Il ne reste plus qu'è
faire une impression énorme en
sélectionnant DOUBLECOPY. Vous
obtiendrez une image "géante" sur
deux feuilles qu'il vous faudra
Impression vous facilitera sans
doute la vie. En revanche, il veut
mieux déjà avoir manipulé une
imprimante car les explications
fournies dans la notice ne vous
seront pas d'un grand secours.
TOP SECRET
LORICIELS
Aventure
C h il r i| g (]'
qui peut se révéler
;, Vous apprenez à la
radio qu'il vient de se passa r un
coup d'Etal et que le Présidant a
É enlevé...
Vous connaisse; un des membres
1e organisation secrète qui a
décidé de le sortir de là : il
s'appelle Manu. Malheureusement,
celui ci est arrêté ! Dès lors, il ne
e plus qu'à déambuler
dans toute la ville à la recherche
d'indices et de contacts
intéressants, afin de récupérer le
matériel nécessaire pour l'évasion,
d'une part, et surtout
l'indispensable mot de passe...
I La version de ce logiciel sur PCW
| est vraiment tri'
u graphisme car l'écran
monochrome n'altère en rien
l'intérêt du jeu. Le problème se
u du vocabulaire à
utiliser ou non car, en effet, il n'v
n guide bu haut de l'écran
comme c'était le ces dans la
n pour les CPC. De toute
façon, il faut employer l'impératif
et vous avez, meigré tout, une
aide qui vous apportera (peut-
Il quelques indices lorsque
i par trop désespéré...
ORPHEE
LORICIELS
Aventure
La descente aux Enfers a été
longue, très longua pour parvenir
sur PCW. Mais (a y est, vous
êtes enfin arrivé aux fins fonds
des profondeurs et il ne vous rest
plus qu'à effectuer votre voyage
aux Enfers.
Votre histoire a commencé tout
bêtement, comme beaucoup de
faits divers : vous ave; au un
accident de voiture I... Vous avez
alors ressenti un vide immense en
S, puis une chaleur de plus en
; intense jusqu'à devenir
insupportable. Et c'est è ce
moment que la rencontre s'est
effectuée : Satan était lé, devant
vous, "en chair et en os" I...
Le face à face avec Satan est le
but de ce fantastique jeu
d'aventure, mais, avant d'en arriver
lé, il vous faudra parcourir près
d'une centaine d'endroits différents
dans lesquels vous n'aurez pas
moins de 24 objets à prendre et
qui vous seront indispensables pour
arriver bu bout du voyage...
La qualité du graphisme sur PC VU
est la même que pour Top secret,
c'est à- dire très bonne. Ce moi s- ci,
vous avez donc la possibilité de
vivre deux grandes aventures.
THE ADVANCED
OCP ART STUDIO
RAINBIRD
Utilitaire
Rainbird avait déjà frappé un grand
coup avec Thg Musc System. Il
récidive en publiant un utilitaire de
dessin réserva au* grosses
mémoires, c'est à dire aux 612B ou
aux 464 et 664 éqwpês d'une
extension 64 K.
Après ï introduction d'un mot de
pesse choisi aléatoirement dans le
manuel, on pesse aux choses
sérieuses Une barre ne menu
appareil au dessus d'un écran
blanc. Je vous propose, pour
commencer, une petite
manipulation. Manœuvre; le
curseur grâce au |0YSHck ou aux
touches fléchées. Le déplacement
est portait : pas de clignotements
la |ui ta position se tait sans
bavures. A propos de
déplacements, la souris AMX peut
eue gérée par le piogremme. Avec
te bébette sous les doigts, on peut
presque se sentir sens le peeu
d'un propnêteire de Mac. Pointe;
donc l'option MISC. Cliquez avec le
bouton de tir ou la barre espace,
un menu déroulent vous propose,
enue autres, le chou du mode
écran. Sélectionne; le MODE 0.
Puis, aile; lusqu'à l'option Hit,
faites un catalogue et choisisse; le
fichier RAYTRACE. le dessin qui
apparaîtra alors ne vous laissera
plue aucun douta sur les capacités
graphiques de l'Amstrad.
Voyons une é une les options
offertes
PHINI ; c'esi une recopie d'écran
sophistiquée. Jugeien plutôt :
l'impression peut se faire en simple
ou double densité avec la
restitution des couleurs par
tramage : on peut agir sur tas
.usnl.ca'ions les marges et le
centrage, te taille en X et en Y de
la recopie. Le "OUMP" est
possible sur des fenêtres Le choix
de l'imprimante est possible entre
DMP-1. OMP2000 ou EPSON.
FILE : cette option auwse toutes
les manipulations habituelles des
fichiers : effacement, catalogua,
chargement, seuvegarde. les
images peuvent être composées ou
non la capacité
d'images sur disques est de 56
fichiers et il est possible de
charger 10 dessins simultanément
en mémoire II est préférable de
sauver les encres de vos œuvres
grâce à l'option Palette, vous
récupérerez ainsi les couleurs
d'origines lors d'un chargement
ultérieur.
PALETTE : le choix des encres est
effectué dans cette partie, avec la
possibilité de produire des couleurs
clignotantes.
PAINT : permet de sélectionner les
"crayons" employés, la forme des
stylos (parmi 16 possibles), le
forme du jet de l'aérographe
(8 options) et sa vitesse.
Les pinceaux sont représentés par
des motifs très colorés. On trouve
un œil, une bouche, un mur de
briques et quelques dessins plus
abstraits. Si l'une des 15 brosses
ne vous convenait pas, il suffirait
d'utiliser l'éditeur de formes pour
créer un motif personnalisé.
MISC est l'abréviation de
miscellaneous (divers). Effacement
de Té cran, visualisation de l'écran
entier, différents m ou es
graphiques, protection des encres
(utile lors du changement de
mode), ainsi que l'entrée de
paramètres supplémentaires (type
affichage des coordonnées) sont
disponibles dans ee menu. J'allais
oublier la sauvegarde du
programme sur disque.
UNDO : est la commande miracle.
En cas d'erreur, elle efface la
dernière action menée.
WINDOWS : c'est une des options
les plus riches. Elle permet de
définir les encres de la Fenêtre, de
choisir la taille de cette Fenêtre,
d'exclure certaines couleurs.
I L'option MULTIPLE exécute des
actions répétées sur les fenêtres
telles que : rutations 1114, 112,
3I4|, échange des encres, re-
i dimensionnement. Les options
I cooper copier- coller "charcutent"
l'écran. Dernières options :
I chargement, sauvegarde da
< fenêtres et modes de recouvrement
I0R, XOR, AND).
FILL : cette fonction remplit des
surfeces fermées ou des couleurs
d'une teinte ou d'un motif choisi à
l'avance. Elle possède quelques
variables telles que le remplissage
total ou par trame. Ici encore, on
trouve un éditeur permettant la
création des motifs.
MAGNIFV ; elle permet
3 grossissements : X2, X4, Xa
avec déplacement sur tout l'écran
et modification au pixel prés, avec
ou sans grille {en mode X8I.
TEXT : c'est ici que l'on définit le
format des lettres à inscrire sur
l'écran. Il est possible d'aller
jusqu'à trois fois la taille normale,
d'écrire dans toutes les directions,
de changer une police de
caractères ou de créer un nouveau
jeu.
SHAPES : les formes suivantes
sont présentes : ligne continue,
rectangles, triangles, rayons,
cercles, ellipses, le tout avec
option élastique ou non.
Je pourrais continuer ainsi la liste
des options pendant plusieurs
pages. OCP est un des logiciels
graphiques les plus perfectionnés
que je connaisse. Sa facilité
d'utilisation et sa puissance vous
permettront, sans nul doute,
d'atteindre des sommets dans fart
pictural sur AMSTRAD.
TRUCS ET ASTUCES
POST SCRIPTUM
Daniel VANDENBROUCKE, l'auteur de
PARTICIP CPC HS n° 3, nous fait part
d'une petite modffication à apporter à
son programme pour qu'il fonctionne
Réécrire la ligne 480 comr
480 DATA '" Les chiots que j'ai (i
étaient mignons.",
ii,1, chiots, oui, o
Ce qui revient à dire que les "non, non"
de la version pnk,éïlentc deviennent des
TRONCATURES
Philippe LHOSTE, du CTISTAT de
SATORY, fait un sort à certaines bogues.
De même, explique t il, que 1/3 n'a pas
de représentation limitée en décimales,
certains nombres ont un nombre de déci
maies indéfini en binaire, d'où troncatu-
res et... erreur. Ce défaut est inévitable
et commun a toutes les machines.
FORMULES
Généreux, Philippe LHOSTE vous offre,
d'abord une simplification des fonctions
ARCSIN(x) et ARCCOS(x) (les plus cour-
tes sont les meilleures), que nous vous
avions proposées dans un précédent
numéro, ensuite les formules hyperbo-
liques.
ARCSIN(x) = ATNIx/SQR(1-x*x))
ARCCOSfx) - pl /2-ARCSIN(x)
SINH(x) = <EXP(x)-EXP(-xl>/2
COSH(x) - (EXP|x) + EXP(-xi)/2
TANHtx) = (1-EXP(-2*x))/(1 +EXP
(-2*x)|
ARGSINH(x) = LOG(x + SQR(x*x+D)
ARGCOSHIx) = LOGlx <■ SQR(x*x-1 1)
ARGTANH(x) = LOG((1 + xl/(1 -x))/2
Et on est prié de ne pas se mélanger les
pinceaux dans les parenthèses I
FORMATEUR, EXPLOITEUR I
Non, il ne s'agit pas du nouveau slogan
entendu entre Bastille et Nation, mais
tout simplement de deux petites routines
qui vous feront gagner de la place sur
vos disquettes. De 1 78 Ko, vous passe-
rez, d'un seul coup d'un seul (enfin pres-
que], à 191 Ko, soit un gain de 1 3 Ko.
Voyons d'abord le formateur qui récu-
père les pistes 40 et 41.
10 FOR N = 1 TO 51
20 READ A$:POKE X.VALC&" + A$)
30 NEXT N
40 CALL &0F80
50 DATA 6,9, 3E,C1,21,b3, F, 23,23,77,
23,36
40 DATA2,23,3C,10,F6,AF,F5,21,b3,
F,E5
50 DATA 11, 4,0,6,9,77,1 9,1 0,FC,57,
1E,0
60 DATA E1,E,C1,DF,bO,F,F1,3C,FE,
2A,20
70 DATA E3,C7,42,C0,07
Ne soyez pas surpris si le programme fait
un RESET après formatage (DATA)
d'une face. Voyons maintenant l'exploi-
teur qui doit être, impérativement, exé
cutè avant toute opération sur le disque.
Laurent KUTIL, qui nous envoie ce truc,
recommande de l'incorporer à vos
LOADERS.
10 OPENOUT-X"
20 POKE &A8A8,&FF
30 POKE &A895,PEEKI&A895) + 13
40 CLOSEOUT
INTERVALLES
31 décembre 1999- 10 juin 1987. Oui,
c'est une soustraction I Sauriez-vous,
rapidement et sans trop vous casser la
tête, calculer le nombre de jours qui nous
séparent de l'an 2000 ? Gérard BUGEL
de BRIVE, lui, entre les données sur son
6128 et obtient, instantanément, le
nombre exact. De plus, vous saurez,
avec le même programme, quel jour sera
le 1 er janvier 2000. Le programme est
concentré, mais bonjour les fonctions
logiques ! Soufflez dans l'alcootest avant
de vous mettre au clavier. Un dérapage
est si vite arrivé I
10 'fnj% = n° du jour, fnm% = n° du
20 'fna% - n D de l'année
30 'ncj = code du jour
40 'fnjour$ = jour de la semaine
50 DEF FNj%-VAL(LEFT$(date$,2l)
60 DEF FNm% = VAUMIDSldateS.
4,2)1
70 DEF FNa% = VAL(RIGHT$
(dateS, 41)
80 DEF FNjourS=jourS(FNcj + (FIX
(-FNcj/7)"7))
90 DEF FNc|-365'FNa% i-FNj% +
31*(FNm%-1) + (ABS(FNm%
<3l"(FIXIIFNa%-1)/4-FIX(0.75"
(FlXi(FNA%-1)/100) + 1 ))))+ IABS
(FNm%>2)"
|-FIX«FNm%'0.4) + 2.3) + FIX
(FNa%/4)-FIX(0.75-(FIXlFNa%/
100) + 1))))
100 RESTORE 120
110 FOR X = TO 6:READ jourS(x);
NEXT
1 20 DATA SAMEDI, DIMANCHE, LUNDI,
MARDI, MERCREDI, JEUDI.
VENDREDI
COMPATIBILITE
Très intéressé par "Les mêmes program-
mes pour tous les CPC" de Daniel Le
Barbier. CPC n" 21 (avril 87), Robert
CABANE de PARIS 1 1 expose ses trucs
pour obtenir GRAPHICS PAPER et GRA
PHICS PEN.
Pour PEN, faire PLOT3l9,319,couleur.
Cela fixe la couleur mais, pour l'affi-
chage, il faut, au préalable, placer le cur-
seur graphique au bon endroit. Pour
PAPER, faire ORIGIN0.0, 0,0,0,0 puis
CLG 1, ce qui a pour effet d'afficher un
petit trait en bas à gauche sur l'écran et
met l'encre graphique au n° 1. Mais
mieux vaut, sur 464, faire POKE
&B338.PEN et POKE &B339, PAPER.
Dans ce cas, on travaille sur un masque.
Si l'on utilise des valeurs autres que 0,
1 , 240 ou 255, on obtient des tracés en
pointillés simulant MASK
Pour le PASCAL HI-SOFT (concurrent de
TURBO et très rapide en graphisme), il
est possible d'appeler les routines systè-
mes à l'aide de ce type de syntaxe :
sr(#..
PHLYCTENES
Pour les inconditionnels d'ULTIMATE
FIGHT (CPC n° 17), dont les doigts
seraient sujets à des échauffements pro-
noncés et dont le clavier se refuse à subir
les derniers outrages, Michaël HOFFERT,
de THIONVILLE, propose les modifica
tions suivantes :
280 IF JOYI0l =
■ 1 etc.
290 IF JOYI1I-
= 1 ,,.
300 IF JOY(0) =
2 ...
310 IF JOY(1) =
■2 ...
320 IF JOY(0) =
^8 ...
330 IF JOY(1) =
■ 4 ...
340 IF JOY(0)< >8 ...
350 IF J0Y(1)<>4 ...
370 IF JOY(0) =
^8 ...
380 IF JOY(1) =
-4 ...
Désormais, c'es
rt le joystick qui
APPEL A BIDOUILLE
Oui serait capable de réaliser un montage
pour la conservation de la date du
CP/M ?
Pierre TACONNET
Nous allons voir ce mois-ci, dans la suite
de notre étude des fonctions du BDOS
de CP/M, les fonctions de lecture et écri-
ture en mode séquentiel, plus quelques
fonctions diverses.
FIXATION DE L'ADRESSE
DES TRANSFERTS DISQUE
Afin d'expliciter le fonctionnement des
fonctions de lecture et d'écriture, il nous
laut parler de la fonction 26 qui permel
de fixer l'adresse îles transferts disque.
En effet, lors d'une lecture Béquentlette
par exemple, CP/M va lire un secteur
logique de 128 octets et le contenu de
ce secteur sers mouvementé à l'adresse
courante des transferts disque, Lors du
démarrage de CP/M, cette adresse vaut
80H, mais la fonction 26 permet de fixer
cette adresse de transfert où vous le
désirez, c'est à-dire le plus souvent dans
une zone réservée à cet effet dans votre
programme.
Si cela est nécessaire, cette adresse peut
être modifiée avant chaque lecture, pour
charger un fichier en mémoire, par exem-
ple, ou pour changer de zone de trans
fert lorsque l'on passe d'un fichier à un
n programme qui travaille sur
trement à lire.
Chaque appel successif à la fonction 2
va donc lire 128 octets du fichier et le
plusi
s liLhie
; se
i sûr, dès que votre piogiarr,
termine, CP/M réinitialise cette adresse
à 80H.
En entrée: C-26 DE- contient
l'adresse des transferts disque à fixer.
En sortie . pas de code retour.
LECTURE SEQUENTIELLE
D'UN FICHIER
Cette fonction permet la lecture en
séquentiel d'un fichier préalablement
ouvert par la fonction 15. Rappelons
que, pour CP/M, un fichier est un ensem-
ble d'enregistrements logiques de
128 octets (un "secteur" CP/M),
Donc, après la fonction 1 5 d'ouverture,
le fichier est ouvert et le pointeur dans
le fichier est fixé sur le premier enregis-
e pointeur d'un
fonction 26 et dèplat
En entrée : C = 20 DE = contient
l'adressB d'un FCB d'un fichier ouvert.
En sortie : A contient si la lecture s'est
effectuée sans erreur
En CP/M 2.2 une valeur différente de
signale que l'on a atteint la fin du fichier.
En CP/M Plus les différentes valeurs pos-
sibles de A sont :
- 01 : fin de fichier.
- 09 : FCB invalide.
OA ; disquette a été changée.
- FF : erreur physique, code dans H.
ECRITURE SEQUENTIELLE
D'UN FICHIER
Cette fonction permet d'effectuer des
écritures séquentielles dans un fichier
préalablement ouvert, soit par la fonction
15, soit par la fonction 22.
Après l'ouverture, le pointeur dans le
fichier est lixé sur le premier enregistre
ment existant (fonction 15) ou à créer
(fonction 22).
Chaque appel successif à la fonction 2 1
va donc prendre les 1 28 octets se trou-
vant à l'adresse des transferts disque et
les écrire dans le fichier concerné. Si le
fichier était un fichier non vide et exis-
tant déjà, les écritures successives écra-
sent
INITIATION A CP/M
dépasse la fin du fichier tel qu'il existait
à l'ouverture, celui-ci augmente en taille
et la nouvelle fin de fichier est après le
dernier enregistrement écrit.
En entrée :C = 21 DE= contient
l'adresse du FCB d'un fichier ouvert.
En sortie : A contient le code retour,
i pas de
r et r
I dans
cas
contraire.
Sous CP/M Plus les codes possibles
sont :
- 01 : plus de place dans le catalogue
(en cas de création d'une nouvelle exten-
sion du fichier).
- 02 : plus de place sur le disque pour
les données,
- 09 : FCB invalide.
- OA : disquette changée.
- FF : erreur physique (code dans Hl
CREATION D'UN NOUVEAU FICHIER
Lorsque nous avons décrit la
fonction 15, nous avons précisé qu'il
s'agissait de l'ouverture d'un fichier déjà
existant. La fonction 22 permet de créer
un nouveau fichier C'est à -dire qu'elle
est identique à la fonction 1 5 sauf qu'il
faut que le fichier spécifié soit inexistant
dans le catalogue et que cette fonction
crée le premier poste catalogue pour ce
En entrée: C = 22 DE= adresse d'un
FCB correctement initialisé
En sortie : A contient une valeur de à
3 si l'opération s'est effectuée correcte-
ment et OFFH dans le cas contraire.
Sous CP/M Plus le registre H contient le
code erreur (voir fonction 15).
La figure 1 vous donne un exemple corn
plet d'utilisation de ces fonctions.
Ce programme recopie un fichier dans un
autre, quelqu'en soit le contenu, texte ou
binaire, car la copie se fait par "sec-
teurs" CP/M de 128 octets.
CHANGEMENT DU NOM D'UN FICHIER
Cette fonction permet de changer le nom
d'un fichier existant par un autre nom
qui, lui, ne doit pas correspondre à un
fichier déjà présent dans le catalogue La
zone pointée par DE contient dans ses
16 premiers octets, le nom du fichier à
renommer, dans le même format que
pour un FCB.
Les 16 octets suivants contiennent le
nouveau nom du fichier également dans
le format d'un nom de fichier de FCB.
mais avec le premier octet toujours à
En entrée : C = 23 DE= adresse d'une
zone contenant l'ancien nom et le nou
veau nom en format FCB.
En sortie : A contient un code retour
équivalent à une ouverture de fichier,
c'est-à-dire de à 3 en cas de succès
et OFFH en cas d'erreur
Sous CP/M Plus en cas d'erreur, le régis
tre H contient le code de l'erreur
La figure 2 vous donne un exemple d'uti-
lisation de cette fonction.
LECTURE DU VECTEUR D'ETAT
DES DISQUES
Cette fonction permet de connaître les
disques qui sont en ligne. Un disque "en
ligne'' est un disque qui a été accédé.
Ainsi, dans un système à 2 lecteurs de
disquette, si vous n'avez pas effectué
d'accès au lecteur B :, celui-ci n'est pas
en ligne. Cette fonction ne permet donc
pas de connaître le nombre de lecteurs
maxi possibles dans un système.
En entrée : C = 24
En sortie : le registre HL contient le vec-
teur des disques actifs
Le bit de L correspond au disque A:,
le bit 1 au disque B;... jusqu'au bit 7 de
H qui correspond au disque P:.
Si le bit est à 0, le disque n'est pas en
ligne.
Si le bit
s 1. le disque
LECTURE DU NUMERO
DU DISQUE COURANT
i tigru
o du dis-
courant. (A: = B: = 1...|
mois prochain, nous continuerons
; quelques fonctions diverses, mais
out avec les lectures et écritures en
3s RANDOM (accès relatif).
Cette fonction permet de c
anna
le disq
su
lequel c
n effectue les opérât
lorsqu
aucun disque n
'est
du
is les n
ams de fichiers
Fn
entrée
C = 25
En
sortie :
A contient le nu
mero
GOMOUT
equ
2
PRIMTB
ë"3U
9
OPEN
aqu
15
CLOSE
omu
lb
CREPITE
eou
22
DELETE
eau
19
REPiD
&em
20
WRITE
equ
21
BETDMPt
*qu
26
CP
r. Q u
0DH
L^
equ
0OH
flff i
6D0S de C
un irjrsae
Ouvertu r» d' un -f i G
Fermeture d' un f l e
Créât .on d 1 un -f . ch
Suppresis. on f ichie
Lecture- se-quent i ei
écriture senuentie
Fi k? adresse des t
Retour chariot.
PI la i wm-.
d^MSGDEB
Ci PRINTS
BDOG
Erreurl
C. DELETE'
d, FCBOUT
BDOS
ciCRERTE
d. FCBOUT
BDOS
Erreur2
d, BUFFER
oSETDMft
BDOS
d REftD
d, FCBIM
BDOS
FinDeF, ,:h
c, WRITE
d.FCBQUT
BDOS
Fer Met il r es
1 1
î Fin de
z Erreyri
; won sf
d,FCBIN
; Feri-tet
i t. CLOSE
1 1 BDDS
d. FCBOUT
i G, CLOSE
i i BDOS
F *
Kl
d, t'ISGËRRl
; H»srsb
C, PRINTS
; ftt-Mt
BDOS
: sdr
°
Fit!
! *t
«i
d. MSGERR?
ï Reœea
"
ErfsHir
d, MBGERP'î
: HM»>
c, PRINTS
; Pffic
1 1
BDOS
D
F-BM-w»t#rea
; «4 f*
Vr
d, MSGËSR4-
î «*a«a
a
Mffi3EtF#rw©
INITIATION A CPM
ri. r-ISGFlN S fi-f+.che m««sa3.© de Fin
IflVi
e* PRINÏS
ce i i
BDQS
«V i
.-, a
eai i
BDOS
r-ISGHRff-1.
: db
CR, LF, ' Erreur ouverture fichier e*i erit ree, fc'
MSGFRR/
: db
CR. LF, ' E: r re ur création fichier en sortie.*'
MSS.ËRR3
: db
DRiLF, ' Kneur écriture sur fichier en sort 1 e, #'
MSBËRR4
; db
CR, LF-, ' Erreur lecture sti-r ficher en entrée.*'
MSGI3EB s
db
CR. LF, LF, ' Début, du prog raifime' > CR, LF - LF = ' *'
MSGFÎW:
db
CR. LF. LF, ' F i n du HT m r amme' ■> CR, LF. LF, ' S'
FCS fNl
db
a ; FCB du f ch,er m entrée.
db
' ES&fi I
db
' HSM !
db
a
Cl5
3b-i.*-FCBIN)
F'ceauT s
db
13 ! FCB du i- i i::h.er en sort , e.
db
'ESSAI
db
1 Sfiv'
db
dS
3S-C*-FCBGUT)
db
" Bu + -fer = '
BUFFERs
ds
1 28
db
'Fin huffer't
ï E^emPie d'ut
fonct i en 23
ËtaQS eau
5
: flppei du BD03 de CfVS.
REftfiMs eau
23
, c h „„ «m #m f,cm«
Tï'
r, RENAME
d,FCBREN
BDOF
Erreur]
; Med i f i e nom du f i ehlsf
î F ■ ch f,»r non ttouvs,
,,.««
„™„
ï suite d,. P ro
WMrt*
i-i BRFM: db
a
' FiSSiHÏ
' ASM'
0, 0, 0,0
'3
' E53SÏ
' GLD 1
a, a, a, si
î Nom du f ,chi*r * rermon
! Moiiveau non
end#
programma™
RESTAURATION DE
LA MEMOIRE BASIC
Bernard BESSE
Le manuel du CPC 464 dit ceci à propos de HIMEM :
"Ayant de redéfinir l'octet le plus haut avec la commande MEMORY, il est souhai-
table d'écrire mm = HIMEM. Vous pourrez après retourner à la capacité de mémoire
précédente avec la commande MEMORY m."
Le manuel mentionne donc la question de la restauration de la mémoire et c'est
bien.
Malheureusement, le problème est d'une part mal posé, d'autre part mal résolu.
Nous proposons une procédure tout ê
fait différente de restauration i
Mais, auparavant, nous devons i
aux 3 questions suivantes :
— Est-il utile de restaurer la rr
(autrement que par RESET] ?
— En quoi le problème est-il m
dans le manuel ?
— Pourquoi est-il mal résolu ?
FAUT-IL RESTAURER
LA MEMOIRE ?
n cas de RESET, tout programrr
e" de l'organisation mémoii
par son prédécE
ir. Cette orga-
■oi.ujellement, être modi-
fiée par des commandes en mode direct.
Cette "passation de suite" se fait évi-
demment pour un même programme
d'un RUN au RUN suivant.
L'erreur bien connue "improper argu-
ment" intervenant au 2 e RUN d'un pro-
gramme commençant par :
tient au fait que le 2" RUN hérite des
zones SYMBOL et MEMORY créées par
le 1" et que le BASIC refuse alors de
créer une 2" zone SYMBOL.
La mémoire BASIC peut être réduite par
is zones suivantes :
SYMBOL AFTER (0 à 1 zone)
MEMORY 10 à 3 zones)
FICHIER (0 à 1 zonel
Nota : s'il existe une zone FICHIER, il
existe au moins une zone MEMORY, car
nous supposons une pratique sans faille
Voici un exemple de configuration à 5
zones qui peut surprendre, mais qui est
tout à fait possible.
Il faut, pour la réaliser, commencer par
faire SYMBOL AFTER 256 car il ne peut
y avoir qu'une seule zone SYMBOL
AFTER,
BAS
(souvent 1 octe
(4096 octets)
(B
tsj
Memory A
Ram System
18 à 2048 octetsl
(A octets)
HAUT
:ntage.
e réservation
Il est probable que les petits programmes
n'ayant pas de besoins particuliers pour
ront s'accommoder d'un
Mais pour :
— les gros programmes,
— ceux qui ont besoin d'u
d'espace à une adresse précise,
— ceux qui ont besoin d'une zon
SYMBOL AFTER plus importante,
il ne peut être question de conserver l'o
gamsation léguée, par le programm
précédent.
Par ailleurs, la solution bien connue qui
consiste à faire RESET pour réinitialiser
la mémoire n'est pas sans inconvé-
nients :
— effacement des instructions KEY,
— effacement du programme en cours,
— pas de possibilité d'écrire RUN et
LOAD dans un programme pour appeler
le programme suivant.
On peut donc affirmer qu'il est très sou-
haitable de pouvoir restaurer
il que par RESET.
EN QUOI LE PROBLEME
EST-IL MAL POSE ?
Il est mal posé parce qu'il est plus logi-
que de restaurer en DEBUT qu'en FIN de
PROGRAMME,
En effet, pour un programme donné, la
restauration au début donne la certitude
convenable.
Dans l'autre cas (restauration en fin),
cette certitude ne peut s'obtenir qu'en
programmant la restauration mémoire
dans TOUS les programmes susceptibles
de précéder le programme concerné.
De plus, il faudrait s'interdire l'utilisation
des ordres MEMORY, SYMBOL AFTER
et OPEN en mode direct.
Pour illustrer le caractère sournois d'un
oubli, voici un petit exemple :
Supposons qu'un programme hérite
d'une zone MEMORY 30000 et qu'il ait
besoin d'une zone MEMORY 40000.
Le programmeur qui suit le Manuel
mm- HIMEM
MEMORY 40000
mm
' la mémoire
monte à 40000
(sans problèmes
supposons-lel
' la mémoire
baisse à 30000
' léguée au pro-
gramme sui-
vant. Bra i/o I
LA PROCEDURE"mm = HIMEM
* MEMORYmm"
DU MANUEL NE MARCHE PAS
Procédons à un certain nom-
bre d'essais dans les conditions ci-
dessous :
a) Par hypothèse, les instructions suivan-
tf-ir.a MfMOKV rr
les font partie de chaque essai :
- RESET B t SYMBOL AFTEB 256
avant chaque essai.
- PRINT HIMEM au tout début et à
l'extrême fin de l'essai.
b) Les caractères V- délimitent les ins-
tructions centrales (non écrites si elles
sont sans intérêt).
c) Les résultats sont notés :
OUI si HIMEM fin - HIMEM deb
NON si ERREUR ou si HIMEM différents
Conclusion des essais
Le procédé du manuel est à rejeter pour
les raisons suivantes :
- MEMORY ne peut pas récupérer une
zone SYMBOL AFTER (seul SYMBOL
AFTER 256 peut le faire).
- MEMORY ne peut pas récupérer une
zone FICHIER OUVERTE (seul CLO-
SEOUT et/ou CLOSEIN peuvent le faire).
- MEMORY ne peut récupérer une
zone FICHIER FERMEE (du genre OPE-
NOUT"bidon") qu'à une seule
condition :
Au moment où l'ordre MEMORY va être
exécuté, la valeur de HIMEM doit être
celle créée par l'ordre OPENOUT (avant
le MEMORY HIMEM-1).
C'est ainsi que l'essai n° 4 réussit si l'on
remplace MEMORY mm par MEMORY
HIMEM+ 1: MEMORY mm
UNE AUTRE SOLUTION
La solution du problême réside dans l'uti-
lisation de 2 adresses gérées par le
BASIC.
Ces 2 adresses se trouvent en AE7B/C
(il s'agit tout simplement de HIMEM) et
le couple d'octets voisin en AE7D/E.
Nous appellerons MEMOIRE LIBRE (ou
plutôt mémoire libérable par MEMORY)
et en abrégé MMLIB cette 2" adresse.
Utilisation de
MMLIB et HIMEM
MMLIB est la valeur maximum du para-
mètre que l'on peut associer à MEMORY.
Nous avons toujours MMLIB > = HIMEM
En conséquence :
Si HIMEM < MMLIB on doit faire
MEMORY mmlib
Si HIMEM =mmlib, MEMORY ne doit
plus être utilisé (car l'ordre MEMORY
HIMEM n'a aucun effet).
Nous avons alors 2 cas de figure théori-
quement possibles :
a) Nous sommes 1 octet plus bas qu'une
zone FICHIER OUVERT.
b) Nous sommes 1 octet plus bas qu'une
zone SYMBOL AFTER.
Puisque nous restaurons en début de
programme, le cas a est éliminé car
aucun fichier n'est ouvert en début de
programme.
Reste le cas b que l'on traite par
SYMBOL AFTER 256.
Ceci se traduit par les 2 lignes de BASIC
100mmlib = PEEK(&AE7D) + 2 56*
PEEK(&AE7E):IF HIMEM < mmlib
THEN MEMORY mmlib:GOTO 100
200 hiold = HIMEM: SYMBOL AFTER
256: IF HIMEM>hiold THEN 100
On pourrait, pour arrêter le processus,
comparer HIMEM à la valeur MAXI de
42647 (ou 44031 pour les cassettes),
au lieu de vérifier que sa valeur reste
égale à HIOLD.
Malheureusement, l'utilisation de cer-
taine^) routine(s) du système d'exploi-
tation a pour résultat apparent de dimi-
nuer le MAXI en le rendant égal à la
valeur du HIMEM courant.
C'est en effet le regrettable comporte-
ment de la routine &BB4Ë utilisée
Ainsi, le petit programme :
RESET
SYMBOL AFTER 256
100 PRINT HIMEM' 42747 à la 1 are
itération
100 ' puis 42619 puis
42491 etc.
110 SYMBOL AFTER 240
120 CALL &BB4E
1 30 SYMBOL AFTER 256 ' ne fait rien
(HIMEM non
grignotera la mémoire BASIC à raison de
128 octets à chaque itération avec
"memory full" pour HIMEM = 1 6507.
L'explication peut être considérée
comme la suivante :
Call &BB4E met à zéro l'octet &B295
Cet octet a la valeur 255 lorsqu'une
matrice de caractères est définie, la
valeur après un SYMBOL AFTER 256.
Par ailleurs, l'octet B294 contient le
numéro du 1 el caractère "utilisateur".
Par exemple, on aura :
- Après SYMBOL AFTER 240 :
B294-240 et B295 = 255
- Après SYMBOL AFTER :
B294^0 et B295 = 255
- Après SYMBOL AFTER 256 :
B295 = et B294 =
On voit que la valeur de B295 permet de
distinguer SYMBOL AFTER 256 et
SYMBOL AFTER qui sont notés tous
deux zéro en &B294.
Call &BB4E fait en quelque sorte
"croire" au système qu'on vient de faire
un SYMBOL AFTER 256, alors qu'il n'en
Sur cette base frauduleuse, le système
considère alors que MAXI = HIMEM.
Nous n'avons pas trouvé un moyen sûr
de contrecarrer les agissements délétè-
res de &BB4E (que cette routine soit
appelée à partir du BASIC ou d'une rou-
tine machine).
Il V s donc lieu, soit de s'en tenir aux 2
lignes de BASIC précédentes, sort d'ajou-
ter une 3° ligne pour "prévenir". On a
100 mmlib = PEEK(8 i AE7D) + 256-PEEK
(&AE7EIIF HIMEM<mmlib THEN
MEMORY mmiibGOTO 100
200 hiold -HIMEM: SYMBOL AFTER
256: IF HIMEM > HIOLD THEN 100
300 MAXI =42747:IF HIMEM<maxi
THEN PRINT"HIMEM";HIMEM;
'•<"; MAXI;"-Faire RESET"
La valeur de MAXI est bien entendu à
remplacer par 44031 pour les systèmes
à cassette.
Il est souhaitable de stocker ces 3 lignes
sur disque (ou sur cassettel sous format
ASCII.
Elles pourront être exécutées par RUN ou
intégrées par MERGE aux programmes
qui ont besoin d'une restauration
Notons que MMLIB, HIOLD sont des
variables réelles. Il faudra donc fusion-
ner ces 2 ou 3 lignes avant un ordre
DEFINT éventuel.
Les articles suivants, parus dans CPC,
précisent certaines questions :
- Le bug de l'openout (Michel Archam
bault) : n° 3, p. 48.
- Fichiers (Michel Archambault) :
n° 18. p 22.
- Symbol After (Michel Archambault) :
n° 12, p. 44.
- Test (Patrick Guyon) : n° 19, p. 89.